Функция NOW возвращает текущий момент времени в формате год-месяц-день часы:минуты:секунды.

Вместо NOW можно использовать функции SYSDATE и CURRENT_TIMESTAMP, они делают то же самое.

См. также функцию CURRENT_DATE, которая возвращает текущую дату в формате год-месяц-день.

См. также функцию CURRENT_TIME, возвращает текущее время в формате часы:минуты:секунды.

Синтаксис

При выборке:

SELECT FROM имя_таблицы WHERE datetime = NOW()

При вставке:

INSERT INTO имя_таблицы SET date = NOW()

Можно также использовать NOW совместно с функциями DAY, MONTH, YEAR, HOUR, MINUTE, SECOND, WEEKDAY, DAYOFWEEK.

К примеру, узнаем номер текущего дня недели:

WEEKDAY(NOW())

Узнаем номер текущего года:

YEAR(NOW())

И так далее.

Можно также использовать NOW совместно с INTERVAL.

К примеру, узнаем номер завтрашнего дня недели:

WEEKDAY(NOW() + INTERVAL 1 DAY)

Узнаем номер текущего года:

YEAR(NOW())

И так далее.

Примеры

Все примеры будут по этой таблице workers, если не сказано иное:

id
айди
name
имя
date
какая-то дата
1 Дима 2010-03-01 12:01:02
2 Петя 2011-04-02 13:02:03
3 Вася 2045-05-03 14:03:04
4 Коля 2046-06-04 15:04:05

Пример

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

SELECT * FROM workers WHERE date > NOW()

SQL запрос выберет следующие строки:

id
айди
name
имя
date
какая-то дата
3 Вася 2045-05-03 14:03:04
4 Коля 2046-06-04 15:04:05

Пример

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

SELECT * FROM workers WHERE date < NOW()

SQL запрос выберет следующие строки:

id
айди
name
имя
date
какая-то дата
1 Дима 2010-03-01 12:01:02
2 Петя 2011-04-02 13:02:03

Пример

В данном примере в базу добавляется работник, при этом в поле date записывается текущий момент времени с помощью NOW:

INSERT INTO workers SET name='Иван', date=NOW()

SQL запрос выберет следующие строки:

id
айди
name
имя
date
какая-то дата
1 Дима 2010-03-01 12:01:02
2 Петя 2011-04-02 13:02:03
3 Вася 2045-05-03 14:03:04
4 Коля 2046-06-04 15:04:05
5 Иван 2017-11-19 22:32:02