Преобразовать строку в дату можно с помощью функции
to_date(строка, формат)
Она позволяет вводить дату независимо от значения параметра DateStyle
. Преобразуем строки в даты в форматах DD.MM.YYYY
и MM.DD.YYYY
:
SELECT to_date('31.12.2022', 'DD.MM.YYYY'),
to_date('12.31.2022', 'MM.DD.YYYY')
# | to_date | to_date |
---|---|---|
1 | 2022-12-31 | 2022-12-31 |
В строке формата можно использовать все коды, что и при форматировании даты и времени.
На практике обычно используют:
Код | Описание |
---|---|
Y,YYY | год (4 или более цифр) с разделителем |
YYYY | год (4 или более цифр) |
YYY | последние 3 цифры года |
YY | последние 2 цифры года |
Y | последняя цифра года |
MONTH | полное название месяца в верхнем регистре (дополненное пробелами до 9 символов) |
Month | полное название месяца с большой буквы (дополненное пробелами до 9 символов) |
month | полное название месяца в нижнем регистре (дополненное пробелами до 9 символов) |
MON | сокращённое название месяца в верхнем регистре (3 буквы в английском; в других языках длина может меняться) |
Mon | сокращённое название месяца с большой буквы (3 буквы в английском; в других языках длина может меняться) |
mon | сокращённое название месяца в нижнем регистре (3 буквы в английском; в других языках длина может меняться) |
MM | номер месяца (01–12) |
DAY | полное название дня недели в верхнем регистре (дополненное пробелами до 9 символов) |
Day | полное название дня недели с большой буквы (дополненное пробелами до 9 символов) |
day | полное название дня недели в нижнем регистре (дополненное пробелами до 9 символов) |
DDD | номер дня в году (001–366) |
DD | день месяца (01–31) |
D | номер дня недели, считая с воскресенья (1) до субботы (7) |
С помощью функции to_date
можно так же вытащить дату из строки. Например:
SELECT to_date('Родился он 29.07.1991 в ...', 'Родился он DD.MM.YYYY')
# | to_date |
---|---|
1 | 1991-07-29 |