MySQL选择行datendtime>现在

时间:2012-02-19 19:03:17

标签: mysql

我正在尝试创建一个涉及聚合一段时间内发送的电子邮件的cron作业。

我需要执行诸如

之类的查询
SELECT count(*) from table where action_time < NOW();

我该怎么做?

我知道CURDATE()CURTIME()但我需要比较时间和日期,以便在事件发生后的确切分钟内执行操作,CURTIME意味着午夜我会遇到问题。

编辑:CURTIME()只包括时间,因此数据库中作业时间为23:59:59的作业将不会在00:00:59运行 - 一分钟后(因为后者不是更大)而不是第一次)

我可以使用日期时间或时间戳,但我将使用什么作为比较函数(我使用上面的NOW()但不起作用)

更新:我尝试过使用 从表中的SELECT count(*),其中UNIX_TIMESTAMP(action_time)&lt; UNIX_TIMESTAMP(NOW()); 它有效:)

3 个答案:

答案 0 :(得分:0)

CURTIME()NOW()实际上都将当前时间返回到第二个。 NOW()也会返回日期部分。不确定你的问题是什么。

答案 1 :(得分:0)

使用mysql的时间戳并与* unix环境中的时间进行比较。

答案 2 :(得分:0)

我试过

SELECT count(*) from table where UNIX_TIMESTAMP(action_time) < UNIX_TIMESTAMP(NOW());