Ввод даты со временем: to_timestamp

Ввод даты из строки

Аналогично функции 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

9.5 Ввод даты: to_date

9.7 Ввод времени