我的数据库具有y m d字段,在一个月和一天中没有领先的零。我试图将记录Y-M-D与今天的日期进行比较。大于或平等显示绿灯图像,否则红灯。它不起作用!帮助!
$q = "SELECT * FROM pec_mbbtmssgs WHERE activity='bike' AND CONCAT(`y`,'-','m','-','d') >= date('Y-n-j')";
$r = mysql_query($q);
$row = mysql_fetch_assoc($r);
$activity = $row['activity'];
if($activity == "bike") {
$image = "greenlight25";
}
else {
$image = "redlight25";
}
echo '<img src=http://img/' . $image . '.gif />';
?>
您对 CONCAT()
的使用有点关闭,因为数据库柱子应包裹在backticks中,或者根本不包装,而单quotes中的字符串/隔板'
。
您也可以做DATE(NOW())
以获取当前日期,并进行比较。然后,您将DATE()
与CONCAT()
结果一起使用,因此变成了
SELECT *
FROM pec_mbbtmssgs
WHERE activity='bike'
AND DATE(CONCAT(y, '-', m, '-', d)) >= DATE(NOW())
更简单的方法就是将您的日期存储在DATE
类型列中,而不是3个单独的列。您始终可以提取所需的特定信息(例如,即使您的价值为 2016-11-30
,也可以提取月份)。
$q = "SELECT * FROM pec_mbbtmssgs WHERE activity='bike' AND unix_timestamp(CONCAT(`y`,'-',`m`,'-',`d`)) >= unix_timestamp(CURDATE())";