Problème :
Vous souhaitez convertir une chaîne contenant des informations de date et d'heure en un horodatage dans PostgreSQL.
Convertissons une chaîne contenant des informations de date, d'heure et de fuseau horaire en type de données timestamptz.
Solution :
Nous utiliserons le TO_TIMESTAMP()
une fonction. Voici la requête que vous écririez :
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Voici le résultat de la requête :
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Discussion :
Utilisez la fonction PostgreSQL TO_TIMESTAMP()
lorsque vous souhaitez convertir une chaîne contenant des données de date et d'heure en timestamp Type de données. Cette fonction prend deux arguments :une chaîne contenant une date et une heure (dans notre exemple, le texte '2018/08/27/15:23:45
') et le format d'entrée (dans notre exemple, 'YYYY/MM/DD/HH24:MI:ss
'). Le format d'entrée indique comment les caractères de la chaîne doivent être convertis. Voici les principaux éléments du modèle ci-dessus :
- AAAA représente une année à 4 chiffres.
- MM représente un mois à 2 chiffres.
- JJ représente un jour du mois à 2 chiffres.
- HH24 représente une heure à 2 chiffres (de 00 à 23).
- MI représente une minute à 2 chiffres (de 00 à 59).
- ss représente une seconde à 2 chiffres (de 00 à 59).
Notez que nous utilisons des barres obliques (/) comme délimiteurs de partie date et deux-points (:) comme délimiteurs de partie heure. Vous pouvez trouver une liste complète des éléments de modèle datetime dans la documentation PostgreSQL.
Notez que le format d'entrée est une chaîne. La fonction TO_TIMESTAMP() renvoie un timestamptz valeur avec les informations de fuseau horaire.
Dans notre exemple, le texte date et heure '2018/08/27/15:23:45
'a été converti en timestamp valeur 2018-08-27 15:23:45+02
. L'horodatage le type de données est plus lisible.