我有以下数据:
Table Name: NODE
NID | Name | Date
001 | One | 1252587739
日期是一个unix时间戳。我需要一个查询,我只能选择“日期”超过24小时的节点。像这样:
SELECT * FROM NODE WHERE Date < NOW() - SOMETHING
答案 0 :(得分:6)
Unix时间戳以秒为单位。这适用于MySQL:
SELECT * FROM NODE WHERE Date < (UNIX_TIMESTAMP(NOW()) - 24*60*60)
答案 1 :(得分:2)
where datediff(hh,date,now())&lt; 24
答案 2 :(得分:1)
按照“Unix时间戳= 1970年1月1日的秒数”的定义,并基于MS SQL Server(7.0及以上兼容):
SELECT *
from NODE
where datediff(ss, dateadd(ss, Date, 'Jan 1, 1970'), getdate()) < 86400
最里面的括号添加到1970年1月1日的秒数,以SQL服务器格式获取行的日期时间,外括号获取该日期和“现在”之间的秒数,86400是24的秒数。小时。 (但仔细检查一下 - 我现在无法调试这个,而且我可能会将函数paramater命令混合在一起。)