php - 使用 unix 选择上个月的行

标签 php mysql unix-timestamp

我试图从上个月的表中选择所有行,基本上就像这个人问的那样:MySQL select all rows from last month until (now() - 1 month), for comparative purposes

但是我在日期列中使用unix timespamp,所以日期是这样的:1538330400

所以我开始使用(选择日期等于或早于今天的行):

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()

关于php - 使用 unix 选择上个月的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52582256/

相关文章:

r - 将 Unix 时间戳转换为日期时间

python - 如何测试给定的时间戳是以秒还是毫秒为单位?

java - 日期递增的 Hive UDF

php - 如何捕获另一个类的异常?

php - JSON 将 Cyryllic 编码为 null

c# - 实现具有某些限制的 JOIN 的算法

mysql - 用于 Windows Phone 远程数据库的 VB silverlight

php - UTF-8贯穿始终

php - 如何存储大部分为空的数据?

php - 使用 javascript 验证注册表单客户端,使用 php 验证服务器端