Дати й часлише PostgreSQL

MAKE_DATE

Складає дату з окремих чисел: року, місяця й дня.

Синтаксис

MAKE_DATE(<рік>, <місяць>, <день>)
MAKE_TIMESTAMP(<рік>, <місяць>, <день>, <година>, <хвилина>, <секунда>)

Корисно, коли рік, місяць і день зберігаються окремими числами або обчислюються. На відміну від склеювання тексту, не треба думати про формат і нулі попереду. Для дати з часом є MAKE_TIMESTAMP.

Дата з трьох чисел
SELECT MAKE_DATE(2026, 9, 13) AS day;
day
2026-09-13
Дата з часом
SELECT MAKE_TIMESTAMP(2026, 9, 13, 15, 47, 0) AS moment;
moment
2026-09-13 15:47:00
Останній день лютого
SELECT MAKE_DATE(2028, 3, 1) - 1 AS last_day_of_february;
last_day_of_february
2028-02-29

Беремо перше березня й віднімаємо день — високосний рік врахується сам.

Зверни увагу

Неіснуюча дата — помилка, а не перенесення на наступний місяць: MAKE_DATE(2026, 2, 30) дасть date field value out of range.

Аргументи — цілі числа. EXTRACT повертає numeric, тож MAKE_DATE(EXTRACT(YEAR FROM created_at), 1, 1) дасть помилку function make_date(numeric, integer, integer) does not exist. Приведи тип: EXTRACT(YEAR FROM created_at)::int.

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