SQL Query仅排除过去24小时的数据?

时间:2010-02-23 03:56:09

标签: mysql datetime

我有以下数据:

Table Name: NODE
NID | Name | Date
001 | One  | 1252587739

日期是一个unix时间戳。我需要一个查询,我只能选择“日期”超过24小时的节点。像这样:

SELECT * FROM NODE WHERE Date < NOW() - SOMETHING
  1. 有人知道怎么做吗?
  2. NOW() - SOMETHING部分是否考虑到日期存储为unix时间戳?

3 个答案:

答案 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命令混合在一起。)