一尘不染

SQL获取所有30天之前的记录

sql

现在,我发现了很多类似的SO问题,包括我的一个老问题,但是我想做的是获取任何早于30天的记录,但是我的表字段是unix_timestamp。所有其他示例似乎都使用DateTime字段或其他内容。尝试了一些但无法让他们工作。

这绝对在下面不起作用。另外,我不希望介于日期之间的日期,我希望从数据库中存储的unix时间戳起30天后的所有记录。我正在尝试修剪不活动的用户。

简单的例子..是行不通的。

SELECT * from profiles WHERE last_login < UNIX_TIMESTAMP(NOW(), INTERVAL 30 DAY)

并尝试了这个

SELECT * from profiles WHERE UNIX_TIMESTAMP(last_login - INTERVAL 30 DAY)

在复杂的日期查询中不太强。任何帮助,我们感激不尽。


阅读 122

收藏
2021-03-17

共1个答案

一尘不染

尝试类似的东西:

SELECT * from profiles WHERE to_timestamp(last_login) < NOW() - INTERVAL '30 days'

引用手册:

也可以使用一个单参数的to_timestamp函数;它接受双精度参数,并从Unix纪元(自1970-01-01 00:00:00 +
00开始的秒数)转换为带时区的时间戳。(整数Unix纪元隐式转换为双精度。)

2021-03-17