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.