我有2张桌子:
我想吸引发布不到一年的图片的用户。我得到了三列(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)
答案 0 :(得分:0)
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