MySQL当前日期

时间:2013-04-16 16:53:32

标签: mysql sql

我希望用户可以在个人资料页面上看到他们今天的图片。

这是对的吗?

SELECT * FROM pictures 
WHERE userid = '$userid'
ORDER BY pictureuploaddate < DATE_ADD(NOW(), INTERVAL 1 DAY);

仍然无法正常工作。谢谢你的帮助。

4 个答案:

答案 0 :(得分:2)

你会得到类似的东西:

SELECT * 
FROM pictures 
WHERE userid = '$userid' AND 
      DATE(pictureuploaddate) = CURDATE() # Match date without time
ORDER BY pictureuploaddate DESC

为什么你ORDER BY并在其中使用=?它应该是今天的日期,只需将其添加到WHERE即可。如果您想先获得最新图片,可以ORDER BY pictureuploaddate DESC

最好比较日期而不是小于您想要当前日期的日期。因为它匹配得更快。

答案 1 :(得分:2)

这将按比较的布尔结果排序:

ORDER BY pictureuploaddate < DATE_ADD(NOW(), INTERVAL 1 DAY)

我猜你想在WHERE子句中进行比较:

WHERE userid = '$userid'
AND pictureuploaddate BETWEEN CURDATE() AND CURDATE() + INTERVAL 86399 SECOND
ORDER BY pictureuploaddate DESC

答案 2 :(得分:2)

我知道你已经选择了一个答案,但为了避免在同一天多次上传有任何混淆,你也可以这样做:

SELECT * 
FROM pictures 
WHERE userid = '$userid'
ORDER BY pictureuploaddate DESC
LIMIT 1;

答案 3 :(得分:1)

您现在正尝试按日期布尔测试的输出对结果进行排序。将该部分添加到WHERE子句更有意义。