我通过文本字段将出生日期插入表格中。 在这里,我需要一个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(年 - 月 - 日) 现在它显示一个没有任何记录的空白页面,即使我有匹配的记录。 任何人都可以提出一些建议
答案 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";
?>
然后你应该看到它崩溃的地方。