PHP MySQL日期比较

时间:2010-11-08 16:55:05

标签: php mysql

我通过文本字段将出生日期插入表格中。 在这里,我需要一个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);
?> 

我的表架构是: my_name varchar(50) my_dob日期

日期存储在表格中,格式如下:2010-01-20(年 - 月 - 日) 现在它显示一个没有任何记录的空白页面,即使我有匹配的记录。 任何人都可以提出一些建议

2 个答案:

答案 0 :(得分:1)

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

你可以找到所有日期&amp; MySQL中可用的时间函数。您可能希望使用DAYOFMONTH和MONTH函数来比较:)

类似于:

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

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

答案 1 :(得分:0)

您的示例代码应返回“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

然后你应该看到它崩溃的地方。