Дати й час

TO_DATE

Перетворює текст на дату за вказаним форматом.

Синтаксис

TO_DATE(<текст>, '<формат>')

Дзеркало TO_CHAR: читає дату з тексту, записаного не так, як чекає PostgreSQL, — наприклад 13.09.2026. Шаблони ті самі: DD — день, MM — місяць, YYYY — рік, Month — назва місяця.

Дата в нашому записі
SELECT TO_DATE('13.09.2026', 'DD.MM.YYYY') AS day;
day
2026-09-13
Американський запис
SELECT TO_DATE('09/13/2026', 'MM/DD/YYYY') AS day;
day
2026-09-13

Той самий день: місяць і число просто стоять в іншому порядку.

З назвою місяця
SELECT TO_DATE('13 September 2026', 'DD Month YYYY') AS day;
day
2026-09-13

Зверни увагу

Формат має збігатися з текстом за змістом: TO_DATE('13.09.2026', 'MM.DD.YYYY') дасть помилку date/time field value out of range, бо місяця 13 нема.

Роздільники звіряються не суворо: TO_DATE('13.09.2026', 'DD-MM-YYYY') теж спрацює. Тож перевірити, чи текст справді в потрібному форматі, TO_DATE не допоможе.

Текст уже у звичному вигляді 2026-09-13? TO_DATE не потрібен — досить '2026-09-13'::date. А дату з часом читає TO_TIMESTAMP, але повертає timestamp with time zone: потрібен звичайний — додай ::timestamp.

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