Vous n'êtes pas identifié(e).

#1 21/11/2019 17:38:36

jacques
Membre

to_timestamp() mauvais résultat avec paramètres invresés

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

#2 21/11/2019 17:54:05

Marc Cousin
Membre

Re : to_timestamp() mauvais résultat avec paramètres invresés

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

#3 21/11/2019 18:08:22

jacques
Membre

Re : to_timestamp() mauvais résultat avec paramètres invresés

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

#4 21/11/2019 18:22:56

Marc Cousin
Membre

Re : to_timestamp() mauvais résultat avec paramètres invresés

Oui, c'est clair que c'est toujours très laxiste...


Marc.

Hors ligne

Pied de page des forums