Probleem:
U wilt een string met datetime-informatie converteren naar een tijdstempel in PostgreSQL.
Laten we een string met datum-, tijd- en tijdzone-informatie converteren naar het datatype timestamptz.
Oplossing:
We gebruiken de TO_TIMESTAMP()
functie. Dit is de vraag die je zou schrijven:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Dit is het resultaat van de zoekopdracht:
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Discussie:
Gebruik de PostgreSQL-functie TO_TIMESTAMP()
wanneer u een tekenreeks met datum- en tijdgegevens wilt converteren naar de tijdstempel data type. Deze functie heeft twee argumenten:een string die een datum en tijd bevat (in ons voorbeeld de tekst '2018/08/27/15:23:45
') en het invoerformaat (in ons voorbeeld 'YYYY/MM/DD/HH24:MI:ss
’). Het invoerformaat geeft aan hoe de karakters in de string moeten worden omgezet. Dit zijn de belangrijkste elementen van het bovenstaande patroon:
- JJJJ staat voor een 4-cijferig jaar.
- MM staat voor een 2-cijferige maand.
- DD staat voor een 2-cijferige dag van de maand.
- HH24 staat voor een 2-cijferig uur (van 00 tot 23).
- MI staat voor een 2-cijferige minuut (van 00 tot 59).
- ss staat voor een seconde van 2 cijfers (van 00 tot 59).
Merk op dat we slashes (/) gebruiken als scheidingstekens voor datumgedeelten en dubbele punten (:) als scheidingstekens voor tijdgedeelten. U kunt een volledige lijst met datetime-patroonelementen vinden in de PostgreSQL-documentatie.
Merk op dat het invoerformaat een string is. De functie TO_TIMESTAMP() retourneert een timestamptz waarde met tijdzone-informatie.
In ons voorbeeld is de tekst datum en tijd '2018/08/27/15:23:45
'is geconverteerd naar de tijdstempel waarde 2018-08-27 15:23:45+02
. Het tijdstempel gegevenstype is beter leesbaar.