我的数据库有几个字段,月份和日期没有前导零。我试图将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 />';
?>
答案 0 :(得分:0)
$q = "SELECT * FROM pec_mbbtmssgs WHERE activity='bike' AND unix_timestamp(CONCAT(`y`,'-',`m`,'-',`d`)) >= unix_timestamp(CURDATE())";
答案 1 :(得分:0)
您对CONCAT()
的使用有点偏离,因为数据库列应该包含在反引号中,或者根本不包含任何内容,以及单引号'
中的字符串/分隔符。
您也可以DATE(NOW())
获取当前日期,然后与此进行比较。然后,您将DATE()
与CONCAT()
的结果一起使用,因此它就像这样
SELECT *
FROM pec_mbbtmssgs
WHERE activity='bike'
AND DATE(CONCAT(y, '-', m, '-', d)) >= DATE(NOW())
更简单的方法是将日期存储在DATE
类型列中,而不是3个单独的列。您始终可以提取所需的特定信息(例如,即使您的值为2016-11-30
,也可以提取月份。)