Вопрос: как использовать текущее время в предложении where - PullRequest
1 голос
/ 04 августа 2010

у меня возник вопрос.Есть ли возможность использовать текущую метку времени вместо выбранной даты в предложении Where?

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

Я думал, что это будет что-то.например: start = 'now ()' или curdate () или curtime ().Все, что я обнаружил, было то, что они используются в предложении Select, но мне это нужно в Where.

Любая помощь очень ценится.Flora

Ответы [ 5 ]

4 голосов
/ 04 августа 2010

Вы можете использовать любую из следующих трех функций в соответствии с вашими требованиями:

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

Результат этого запроса -

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

Отредактировано: Вы можете использовать эти функции в предложении Where, как указано.

4 голосов
/ 04 августа 2010
SELECT this, that
FROM here
WHERE start >= NOW()
1 голос
/ 04 августа 2010

Вы не должны заключать в кавычки имя функции

Использовать имена функций, например:

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

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

1 голос
/ 04 августа 2010

Я бы использовал

WHERE start >= current_timestamp

Только потому, что это должно работать в каждой СУБД. Не знаю насчет NOW (), может быть, это стандартная функция?

Обновление: теперь я знаю, что NOW () не работает, по крайней мере, в Oracle, поэтому я бы определенно выбрал current_timestamp, current_date и т. Д., Потому что они в стандарте. Я выполнил несколько миграций СУБД (DB2 -> MySQL, MySQL -> Oracle и т. Д.), И я рад, что мы использовали SQL, совместимый со стандартами, когда это было возможно, что сделало миграции относительно безболезненными.

1 голос
/ 04 августа 2010

Конечно, вы можете:

WHERE start >= CURDATE()

Вы можете использовать любое выражение в предложении WHERE, используя любую встроенную функцию даты и времени .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...