【问题标题】:PHP MySQL Date comparisonPHP MySQL 日期比较
【发布时间】:2010-11-09 02:16:12
【问题描述】:

我通过文本字段将出生日期插入表格。 在这里,我需要一个 mysql 查询来检查当前月份和当前日期以及数据库中匹配的任何日期。 无需检查年份,因为这是为了在生日时显示警报, 任何人都可以有 SQL Query 的想法在单个查询中执行此操作。这里我将它与 PHP 和 MySQL 一起使用。提前致谢

我的示例代码是:

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

$my_birth_date = "2010-11-08";

$result = mysql_query("SELECT * FROM mydate WHERE DAYOFMONTH($my_birth_date) = DAYOFMONTH(NOW()) AND MONTH($my_birth_date) = MONTH(NOW())
");


while($row = mysql_fetch_array($result))
  {
  echo $row['my_name'] . " " . $row['my_dob'];
  echo "<br />";
  }

mysql_close($con);
?> 

我的表架构是: 我的名字 varchar(50) 我的出生日期

日期以这种格式存储在表格中:2010-01-20(年-月-日) 现在它显示一个没有任何记录的空白页,即使我有匹配的记录。 谁能给点建议

【问题讨论】:

  • 请提供 CREATE TABLE 语句。如果存储日期,则该列应使用 DATETIME 或 DATE 数据类型,而不是基于字符串,因为您必须先将其转换为与日期相关的数据类型,然后才能进行日期操作/比较。
  • 数据库中的日期是如何存储的?

标签: php mysql


【解决方案1】:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

您可以在 MySQL 中找到所有可用的日期和时间函数。您可能想使用 DAYOFMONTH 和 MONTH 函数进行比较:)

比如:

SELECT * FROM table WHERE DAYOFMONTH(birthday) = DAYOFMONTH(NOW()) AND MONTH(birthday) = MONTH(NOW())

可能有一些更有效的方法可以做到这一点,但这是我首先要尝试的!希望对您有所帮助!

【讨论】:

  • Hai Gazlion..感谢您的回复
  • 您可能希望使用此信息编辑您的原始问题。你有错误吗?您的表架构是什么样的?
  • @Gazillion:我已经用更新的消息编辑了我的问题。你能看看吗
  • 现在您不是在与数据库中的出生日期进行比较,而是将其与 PHP 变量进行比较。在 SQL 语句中使用 my_dob 切换 $my_birth_date。这个想法是您将数据库中的列与当前时间戳进行比较。
  • @Gazillion:我已经替换了你所说的变量。但现在也只显示一个空白页。我打印了 $result,得到了“Resource id #3”。可能是什么问题?
【解决方案2】:

您的示例代码应返回“mydate”表中的所有记录。

直接在服务器上尝试查询(在终端中或使用 phpMyAdmin 之类的应用程序)以检查它是否返回数据。

使用mysql_error 调试您的代码。

例子:

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

mysql_error : php.net.

然后你应该看到它在哪里崩溃了。

【讨论】:

    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    相关资源
    最近更新 更多