MySQL比较unix时间戳

时间:2013-08-09 18:37:41

标签: mysql date

我正在尝试获取所有在2小时前都有date_created的记录。它是一个unix时间戳,它是从php函数time()创建的。这是我目前的查询:

SELECT id from gsapi_synsets where name = "Beyonce" and date_created BETWEEN  UNIX_TIMESTAMP(date_created) and UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL 2 hour))    

似乎没有工作。

2 个答案:

答案 0 :(得分:7)

如果将来没有date_created值,您可以使用:

SELECT id
FROM gsapi_synsets
WHERE name = 'Beyonce'
  AND date_created > UNIX_TIMESTAMP(NOW() - INTERVAL 2 HOUR);

如果将来可以使用date_created值,请使用此值,该值会在当前

处切断
SELECT id
FROM gsapi_synsets
WHERE name = 'Beyonce'
  AND date_created BETWEEN UNIX_TIMESTAMP(NOW() - INTERVAL 2 HOUR) AND UNIX_TIMESTAMP()

请注意,在没有参数的情况下调用UNIX_TIMESTAMP将返回“立即”的时间戳。

答案 1 :(得分:1)

你试图在该行的日期戳之间和从现在开始的2个小时之间获得所有行,这将无效。请改用:

SELECT id from gsapi_synsets where name = "Beyonce" and date_created BETWEEN  UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL -2 hour)) and  UNIX_TIMESTAMP(NOW())