MySQL查询 - 日期字段的周年纪念

时间:2014-01-28 05:51:32

标签: php mysql sql date

我正在设置一个包含2个字段的mysql数据库,一个是名称(文本字符串),另一个是日期。 yyyy-mm-dd.

我需要查询表格,只显示与dd-mm匹配的名称。所以在那个日期的周年纪念日,这些名字每年都会打印出来。

$query = "SELECT * FROM FRSLNamelist WHERE $dateofdeath"; 
$result = mysql_query($query); 
while ($line = mysql_fetch_assoc($result)) { 
echo $line['fullname'];
echo "<br>";

我找不到任何地方如何做到这一点。 我知道你可以爆炸分隔的日期字段,这样你只需要匹配月和日。

我需要这个功能:

如果[datefield] = [current.day.month]print [name]

任何人都可以快速解决。

先谢谢。

1 个答案:

答案 0 :(得分:4)

如果存储的日期采用您提到的yyyy-mm-dd格式,并且您必须忽略yyyy部分,那么一种方式是:

$dateOfdeath=date("m-d");
$query = "SELECT * FROM FRSLNamelist WHERE  dateField LIKE '%-$dateofdeath'"; 

另一种更好的方式是:

$d=date("d");
$m=date("m");
$query = "SELECT * FROM FRSLNamelist WHERE MONTH(dateField)=$m AND DAY(dateField)=$d"; 

修改

  

使用dateFieldName,我可以使用curdate吗?

SELECT * FROM FRSLNamelist 
WHERE MONTH(dateField)=MONTH(CURDATE())
AND DAY(dateField)=DAY(CURDATE())