Ввод даты из строки
Аналогично функции to_date
для ввода даты со временем есть функция to_timestamp
:
to_timestamp(строка, формат)
Она позволяет вводить дату со временем независимо от значения параметра DateStyle
. Например:
SELECT to_timestamp('31.12.2022', 'DD.MM.YYYY'),
to_timestamp('12.31.2022 12:10:01', 'MM.DD.YYYY HH24:MI:SS'),
to_timestamp('31.12.2022 23:59:59.999999', 'DD.MM.YYYY HH24:MI:SS.US')
# | to_timestamp | to_timestamp | to_timestamp |
---|---|---|---|
1 | 2022-12-31 00:00:00+07 | 2022-12-31 12:10:01+07 | 2022-12-31 23:59:59.999999+07 |
Обрати внимание, что результат возвращается с указанием часового пояса.
Время в стиле Unix
Один из популярных форматов хранения даты со временем - это хранение прошедших секунд с 1 января 1970 года (Unix timestamp).
Функция to_timestamp
умеет преобразовывать значение типа double
Unix timestamp в тип timestamp with time zone
:
SELECT to_timestamp(1672505999) AS year_2022,
to_timestamp(1672506000) AS year_2023
# | year_2022 | year_2023 |
---|---|---|
1 | 2022-12-31 23:59:59+07 | 2023-01-01 00:00:00+07 |
Можно указывать дробную часть секунды:
SELECT to_timestamp(1672505999.99) AS year_2022,
to_timestamp(1672506000) AS year_2023
# | year_2022 | year_2023 |
---|---|---|
1 | 2022-12-31 23:59:59.99+07 | 2023-01-01 00:00:00+07 |