Hi-im试图通过查询比较MySQL中的两个日期,一个是文章第一次发布的日期,第二个是应该由查询删除的日期(365天后,由cron任务每30分钟运行一次),下面是我的SQL查询
DELETE FROM $wpdb->posts WHERE post_type = 'business' AND DATEDIFF(NOW(), post_date_gmt) > 2
我的日期以2011-05-26 13:10:56
的格式保存在数据库中,所以我的问题是DATETIME查询是否会遵循确切的日期和时间,或者当cron在第365天运行时删除文章,即使在文章实际发布365天之前还有13:10:56
?
问候
您的查询将删除任何超过2天的帖子,而不是365天。
但你的问题的答案很容易测试:
mysql> SELECT DATEDIFF('2011-01-01 00:10:00','2011-01-01 00:00:00');
+-------------------------------------------------------+
| DATEDIFF('2011-01-01 00:10:00','2011-01-01 00:00:00') |
+-------------------------------------------------------+
| 0 |
+-------------------------------------------------------+
1 row in set (0.00 sec)
正如您所看到的,DATEDIFF()只返回整天的整数。以"2011-01-01 23:59:59"作为第一个日期的类似测试也将产生0。
因此,你的问题的简短答案是"是的,它尊重日期和时间,一直到第二个。"