我有一个问题想问。在Where子句中是否有可能使用当前时间戳代替选择的日期?
SELECT this, that
FROM here
WHERE start>='2010-07-01'
我认为它应该是这样的:start='now()'、curdate()或curtime()。 我找到的所有内容都是在Select子句中使用的,但我需要在Where中使用。非常感谢任何帮助。 Flora
我有一个问题想问。在Where子句中是否有可能使用当前时间戳代替选择的日期?
SELECT this, that
FROM here
WHERE start>='2010-07-01'
我认为它应该是这样的:start='now()'、curdate()或curtime()。 我找到的所有内容都是在Select子句中使用的,但我需要在Where中使用。SELECT this, that
FROM here
WHERE start >= NOW()
SELECT NOW(),CURDATE(),CURTIME()
NOW() | CURDATE() | CURTIME()
---------------------+----------------+----------
2008-11-11 12:45:34 | 2008-11-11 | 12:45:34
... WHERE v_date=CURRENT_DATE()
我会使用
WHERE start >= current_timestamp
这应该在每个DBMS中都可以工作。不过我不确定NOW()是否是标准函数?
更新:现在我知道NOW()至少在Oracle中不起作用,所以我肯定会使用current_timestamp、current_date等,因为这些是标准的。我已经完成了一些DBMS迁移(从DB2到MySQL,从MySQL到Oracle等),我很高兴我们尽可能使用符合标准的SQL,这使得迁移相对轻松。
不应该引用函数名称
使用以下方式的函数名称:
SELECT this, that FROM here WHERE
start >= NOW();
SELECT this, that FROM here WHERE
start >= CURRENT_DATE();