Проблем:
Искате да конвертирате низ, съдържащ информация за дата и час, в клеймо за време в PostgreSQL.
Нека преобразуваме низ, съдържащ информация за дата, час и часова зона, към типа данни timestamptz.
Решение:
Ще използваме TO_TIMESTAMP()
функция. Ето заявката, която бихте написали:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Ето резултата от заявката:
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Дискусия:
Използвайте функцията PostgreSQL TO_TIMESTAMP()
когато искате да конвертирате низ, съдържащ данни за дата и час, в timestamp тип данни. Тази функция приема два аргумента:низ, съдържащ дата и час (в нашия пример текстът '2018/08/27/15:23:45
') и входния формат (в нашия пример, „YYYY/MM/DD/HH24:MI:ss
“). Входният формат показва как трябва да се преобразуват знаците в низа. Ето основните елементи от горния модел:
- ГГГГ представлява 4-цифрена година.
- ММ представлява двуцифрен месец.
- DD представлява двуцифрен ден от месеца.
- HH24 представлява 2-цифрен час (от 00 до 23).
- MI представлява 2-цифрена минута (от 00 до 59).
- с представлява 2-цифрена секунда (от 00 до 59).
Обърнете внимание, че използваме наклонени черти (/) като разделители на част от дата и двоеточия (:) като разделители на времева част. Можете да намерите пълен списък с елементи на шаблон за дата и час в документацията на PostgreSQL.
Забележете, че входният формат е низ. Функцията TO_TIMESTAMP() връща timestamptz стойност с информация за часовата зона.
В нашия пример текстовите дата и час „2018/08/27/15:23:45
„бе преобразувано в клеймото за време стойност 2018-08-27 15:23:45+02
. марката за време типът данни е по-четлив.