我正在尝试获取所有在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))
似乎没有工作。
答案 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())