我正在设置一个包含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]
。
任何人都可以快速解决。
先谢谢。
答案 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())