无法获得使用 datediff 返回的正确行
Not able to get the correct rows returned with datediff
我有 2 个表:
- 图片:picture_id、picture_date
- picture_user: pictured_id, user_id(发布图片的用户)
我想获取在不到一年内发布过图片的用户。我得到了三列(pid
、userid
、p_date
),但也返回了一些 p_date
大于 1 年的行。
SELECT p_picuser.pid,p_date,userid from p_pictures, p_picuser
where p_pictures.pid=p_picuser.pid
AND (datediff(STR_TO_DATE(p_date, '%Y-%m-%d'),CURDATE())<365)
MySQL 文档指出 datediff 是 date1 - date2。
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_datediff
如果您要将现在与过去的日期进行比较(试图找出某物的年代),则需要从 curdate()
中减去这些日期——而不是相反。
请参阅文档中的这些示例:
mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
-> -31
我有 2 个表:
- 图片:picture_id、picture_date
- picture_user: pictured_id, user_id(发布图片的用户)
我想获取在不到一年内发布过图片的用户。我得到了三列(pid
、userid
、p_date
),但也返回了一些 p_date
大于 1 年的行。
SELECT p_picuser.pid,p_date,userid from p_pictures, p_picuser
where p_pictures.pid=p_picuser.pid
AND (datediff(STR_TO_DATE(p_date, '%Y-%m-%d'),CURDATE())<365)
MySQL 文档指出 datediff 是 date1 - date2。 https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_datediff
如果您要将现在与过去的日期进行比较(试图找出某物的年代),则需要从 curdate()
中减去这些日期——而不是相反。
请参阅文档中的这些示例:
mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
-> -31