Vous n'êtes pas identifié(e).
Bonjour,
Avec PostgreSQL version 10.6, j'ai noté le résultat étrange avec la fonction to_timestamp(text, text) lorsque les paramètres sont inversés :
SELECT to_timestamp('yyyymmdd','20191121') ;
to_timestamp
---------------------------
0001-01-01 00:00:00+00 BC
(1 ligne)
Selon moi, c'est un bug, n'est-ce pas ?
Dernière modification par jacques (21/11/2019 17:50:13)
Hors ligne
C'est voulu dans le code. to_timestamp essaye de son mieux, sans faire d'erreur, même si la chaîne ne format est "mauvaise". Ici, Les nombres dans la chaîne de formatage sont simplement ignorés. Je ne suis pas fan non plus, mais c'est comme ça, et voulu...
Marc.
Hors ligne
Bonjour,
Merci pour la réponse.
Je pensais que c'était le comportement originel qui consiste à ne pas vraiment bien vérifier les paramètres, mais que maintenant ce comportement avait été abandonné au profit d'une fonction davantage " cadrée " :
SELECT to_timestamp('20191121','yyyymmddddd') ;
ERROR: source string too short for "ddd" formatting field
DÉTAIL : Field requires 3 characters, but only 2 remain.
ASTUCE : If your source string is not fixed-width, try using the "FM" modifier.
ou bien :
SELECT to_timestamp('20191199','yyyymmdd') ;
ERROR: date/time field value out of range: "20191199"
-> qui auparavant renvoyait un résultat (me semble-t-il)
Donc, je pense que la fonction a été améliorée mais pas pour tous les cas.
Dernière modification par jacques (21/11/2019 18:11:07)
Hors ligne
Oui, c'est clair que c'est toujours très laxiste...
Marc.
Hors ligne