Дати й час

NOW

Повертає поточні дату й час — момент, коли почалася транзакція.

Синтаксис

NOW()
CURRENT_TIMESTAMP

NOW() дає дату, час і часовий пояс, а CURRENT_TIMESTAMP — те саме за стандартом SQL. Лише дату без часу дає CURRENT_DATE. До результату можна додавати й віднімати інтервали: NOW() - INTERVAL '7 days' — тиждень тому. Часто його ставлять значенням за замовчуванням: created_at timestamptz DEFAULT NOW().

Дані для прикладів

orders

idcreated_atamount
12026-07-03 10:15:00120.50
22026-07-28 18:40:0080.25
32026-08-09 09:05:00199.99
42026-08-21 14:30:0045.00
52026-09-02 11:00:0064.75

Ці таблиці вже створено в пісочниці — приклади нижче працюють із ними. Хочеш повторити у своїй базі — скопіюй SQL.

Зараз
SELECT NOW() AS now,
CURRENT_TIMESTAMP AS standard_name;
nowstandard_name
2026-09-14 12:42:53.677+022026-09-14 12:42:53.677+02

Результат нижче збережено, коли готували сторінку. Натисни «Виконати» — побачиш свій поточний час.

Тиждень тому й за годину
SELECT NOW() - INTERVAL '7 days' AS week_ago,
NOW() + INTERVAL '1 hour' AS in_an_hour;
week_agoin_an_hour
2026-09-07 12:42:53.679+022026-09-14 13:42:53.679+02
Скільки часу минуло від кожного замовлення
SELECT id, created_at,
NOW() - created_at AS time_passed
FROM orders;
idcreated_attime_passed
12026-07-03 10:15:0073 days 02:27:53.681
22026-07-28 18:40:0047 days 18:02:53.681
32026-08-09 09:05:0036 days 03:37:53.681
42026-08-21 14:30:0023 days 22:12:53.681
52026-09-02 11:00:0012 days 01:42:53.681

Зверни увагу

NOW() не змінюється впродовж транзакції: в усіх рядках і в усіх запитах між BEGIN і COMMIT значення однакове. Справжній поточний момент щоразу дає clock_timestamp().

Вигляд результату залежить від часового поясу сесії: той самий момент на різних комп'ютерах показується по-різному. Для зберігання моментів бери тип timestamptz.

Схожі функції