问题:如何在where子句中使用当前时间

时间:2010-08-04 10:37:47

标签: sql mysql phpmyadmin

我想到了一个问题。是否有可能在Where子句中使用当前时间戳而不是选定日期?


SELECT this, that
FROM here
WHERE start>='2010-07-01'

我以为会是某事。喜欢:start ='now()'或curdate()或curtime()。 我发现的任何东西都是在Select Clause中使用它们,但我需要它在Where。

非常感谢任何帮助。 菌群

6 个答案:

答案 0 :(得分:4)

SELECT this, that
FROM here
WHERE start >= NOW()

答案 1 :(得分:4)

您可以根据自己的要求使用以下三种功能之一:

SELECT NOW(),CURDATE(),CURTIME()

此查询的输出为 -

NOW()                | CURDATE()    | CURTIME()
---------------------+----------------+----------
2008-11-11 12:45:34  | 2008-11-11   | 12:45:34

编辑: 您可以按照说明在Where子句中使用这些函数。

答案 2 :(得分:1)

当然可以:

WHERE start >= CURDATE()

您可以使用任何inbuilt Date-and-Time function

WHERE子句中使用任何表达式

答案 3 :(得分:1)

我用

WHERE start >= current_timestamp

因为这应该适用于每个DBMS。不知道NOW(),也许这是一个标准功能?

更新:现在我知道NOW()至少在Oracle中不起作用,所以我肯定会使用current_timestamp,current_date等,因为这些都在标准中。我已经完成了几次DBMS迁移(DB2 - > MySQL,MySQL - > Oracle等),我很高兴我们尽可能使用符合标准的SQL,这使迁移变得相对轻松。

答案 4 :(得分:1)

您不应引用功能名称

使用如下函数名称:

  • SELECT this, that FROM here WHERE start >= NOW();

  • SELECT this, that FROM here WHERE start >= CURRENT_DATE();

答案 5 :(得分:1)

SELECT COUNT(vouch_no) As Count FROM f1work WHERE v_date=CURRENT_DATE()