Je suis en train ERROR: timestamp out of range: "1.52701e+15"
lors de la tentative de conversion d'une époque stockée sous forme de bigintamp en horodatage (la valeur est tirée d'une véritable table de base de données):
select to_timestamp(1527012834506374);
ERROR: timestamp out of range: "1.52701e+15"
D'autres approches de conversion ne fonctionnent pas non plus:
select 1527012834506374::abstime::timestamp;
ERROR: cannot cast type bigint to abstime
select 1527012834506374::integer::abstime::timestamp;
ERROR: integer out of range
C'est une époque valide; https://www.epochconverter.com/ me dit que 1527012834506374 est équivalent au 2018-05-22 06: 13: 54.506 UTC
Comment puis-je faire la conversion en utilisant SQL dans Postgres?
Lorsque je colle la valeur 1527012834506374
Dans https://www.epochconverter.com/ je vois l'avertissement:
En supposant que cet horodatage est en microsecondes (1/1 000 000 de seconde):
La to_timestamp()
de Postgres suppose une époque avec des secondes, pas des microsecondes, vous devez donc utiliser:
select to_timestamp(1527012834506374 / 1000000.0)