Дати й часстандарт SQL

CURRENT_DATE

Повертає сьогоднішню дату — без часу.

Синтаксис

CURRENT_DATE

Пишеться без дужок, як слово. Тип результату — date, тож до нього додають цілі дні: CURRENT_DATE + 7 — через тиждень. Як і 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 CURRENT_DATE AS today;
today
2026-09-14

Натисни «Виконати» — побачиш свою дату.

Через тиждень і місяць тому
SELECT CURRENT_DATE + 7 AS next_week,
CURRENT_DATE - INTERVAL '1 month' AS month_ago;
next_weekmonth_ago
2026-09-212026-08-14 00:00:00
Скільки днів минуло від кожного замовлення
SELECT id, created_at,
CURRENT_DATE - created_at::date AS days_ago
FROM orders;
idcreated_atdays_ago
12026-07-03 10:15:0073
22026-07-28 18:40:0048
32026-08-09 09:05:0036
42026-08-21 14:30:0024
52026-09-02 11:00:0012

Різниця двох дат — ціле число днів.

Зверни увагу

Без дужок: CURRENT_DATE() дасть помилку syntax error at or near "(".

CURRENT_DATE - INTERVAL '1 month' дає вже не date, а timestamp. Потрібна саме дата — додай ::date.

Зі стовпцем timestamp порівнюй діапазоном: created_at = CURRENT_DATE знайде лише моменти рівно опівночі. За сьогодні — created_at >= CURRENT_DATE AND created_at < CURRENT_DATE + 1.

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

Детально в курсі