mysql now()函数

时间:2012-01-05 20:53:30

标签: mysql date

这样做的SQL方式是什么:

$now = date('Y-m-d H:i:s', time())
SELECT * FROM table WHERE '$now' > time

是吗:

SELECT * FROM table WHERE now() > time

2 个答案:

答案 0 :(得分:9)

你的第二个例子是正确的纯SQL方法。

SELECT * FROM table WHERE NOW() > `time`

虽然我发现反转它们更具可读性,因为似乎更合乎逻辑地认为 time的价值现在是在之前。“这实际上没有区别,但是,并且基于我的偏好。

SELECT * FROM table WHERE `time` < NOW()

您可以在查询中使用更多本机MySQL日期函数described in the MySQL documentation.

例如,要与5分钟前进行比较,请使用DATE_SUB()

SELECT * FROM table WHERE `time` < DATE_SUB(NOW(), INTERVAL 5 MINUTE)

答案 1 :(得分:-2)

我不明白问题 - 第一个例子是根据你的php后端计算日期,第二个是使用mysql服务器的内置函数。本质效应是一样的。

如果你曾经考虑过,mysql中的now()函数是确定性的(它会正确复制到slave),所以即使在master-slave环境中,两个代码片段都没有区别,只要php后端和sql server有同步时钟。

只是为了澄清:当然如果你的php后端和mysql时钟不同步,两个代码片段之间会有差异,但在正常环境中这不应该发生,至少是不相关的。