select 行来自上个月使用 unix
select rows from last month using unix
我正在尝试 select 上个月 table 的所有行,基本上就像这个人问的那样:MySQL select all rows from last month until (now() - 1 month), for comparative purposes
但是我在日期列中使用了 unix 时间戳,所以日期是这样的:1538330400
所以我开始使用(select 行日期等于或早于今天):
SELECT * FROM ns_trainingame t WHERE t.date <= UNIX_TIMESTAMP(NOW());
它工作得很好。
然后,经过一些研究,我发现有些人使用一些代码来 NOT UNIX TIMESTAMPS 并尝试对其进行调整以解决我的问题。
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))");
但是在这些情况下给我的行数错误。
我能做什么?
如果您想要获取上个月(截至发布时,8 月 30 日至 9 月 30 日)的所有结果,这可能是最简单的方法。使用 FROM_UNIXTIME
将您的时间戳转换为日期,然后您可以将其直接与其他日期进行比较:
SELECT *
FROM ns_trainingame t
WHERE FROM_UNIXTIME(t.date) BETWEEN CURDATE() - INTERVAL 1 MONTH AND CURDATE()
我正在尝试 select 上个月 table 的所有行,基本上就像这个人问的那样:MySQL select all rows from last month until (now() - 1 month), for comparative purposes
但是我在日期列中使用了 unix 时间戳,所以日期是这样的:1538330400
所以我开始使用(select 行日期等于或早于今天):
SELECT * FROM ns_trainingame t WHERE t.date <= UNIX_TIMESTAMP(NOW());
它工作得很好。
然后,经过一些研究,我发现有些人使用一些代码来 NOT UNIX TIMESTAMPS 并尝试对其进行调整以解决我的问题。
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))");
但是在这些情况下给我的行数错误。
我能做什么?
如果您想要获取上个月(截至发布时,8 月 30 日至 9 月 30 日)的所有结果,这可能是最简单的方法。使用 FROM_UNIXTIME
将您的时间戳转换为日期,然后您可以将其直接与其他日期进行比较:
SELECT *
FROM ns_trainingame t
WHERE FROM_UNIXTIME(t.date) BETWEEN CURDATE() - INTERVAL 1 MONTH AND CURDATE()