【问题标题】:Question: how to use the current time in a where clause问题:如何在where子句中使用当前时间
【发布时间】:2010-08-04 10:37:47
【问题描述】:

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


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

我还以为会这样。比如:start='now()' 或 curdate() 或 curtime()。 我发现它们在 Select 子句中使用,但我在 Where 中需要它。

非常感谢任何帮助。 植物群

【问题讨论】:

    标签: sql mysql phpmyadmin


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      SELECT this, that
      FROM here
      WHERE start >= NOW()
      

      【讨论】:

      • 在处理日期时要小心 NOW(),因为它也会返回时间部分。在这种特定情况下,您会没事的,因为您使用 >=.
      • 另外,根据快速测试,NOW() 例如在 Oracle 中不起作用,因此如果您最终迁移到另一个数据库,如果您使用 NOW,您将需要做一些额外的工作()。
      【解决方案3】:

      您可以根据需要使用以下三个功能中的任何一个:

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

      这个查询的输出是 -

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

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

      【讨论】:

        【解决方案4】:

        当然可以:

        WHERE start >= CURDATE()
        

        您可以在WHERE 子句中使用任何表达式,使用任何inbuilt Date-and-Time function

        【讨论】:

          【解决方案5】:

          我会使用

          WHERE start >= current_timestamp
          

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

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

          【讨论】:

            【解决方案6】:

            你不应该引用函数名

            使用这样的函数名称:

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

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

            【讨论】:

              猜你喜欢
              • 2021-07-27
              • 2010-10-08
              • 1970-01-01
              • 1970-01-01
              • 2018-01-12
              • 2016-04-23
              • 1970-01-01
              • 1970-01-01
              • 2018-04-14
              相关资源
              最近更新 更多