我尝试从上个月的表中选择所有行,基本上就像这家伙问的:mysql select all rows from last month until(now()-1 month),用于比较
但是我在date列中使用unix timespamp,所以日期是这样的:1538330400
所以我开始使用(选择日期等于或早于今天的行):
SELECT * FROM ns_trainingame t WHERE t.date <= UNIX_TIMESTAMP(NOW());
效果不错。
然后,经过一些研究,我发现一些人使用一些代码来代替unix时间戳,并试图调整它来解决我的问题。
SELECT *
FROM ns_trainingame t
WHERE t.date >= UNIX_TIMESTAMP(DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY))
AND t.date <= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))");
但是在这种情况下给我的行数是错误的。
我能做什么?
1条答案
按热度按时间lbsnaicq1#
如果你想得到上个月的所有结果(截至发帖日期,8月30日至9月30日),这可能是最简单的方法。使用
FROM_UNIXTIME
要将时间戳转换为日期,然后可以直接与其他日期进行比较,请执行以下操作: