web-dev-qa-db-fra.com

Conversion de bigint en horodatage dans presto

J'ai une colonne dans mon jeu de données qui a un type de données bigint:

Col1     Col2
   1     1519778444938790
   2     1520563808877450
   3     1519880608427160
   4     1520319586578960
   5     1519999133096120

Comment convertir Col2 au format suivant:

année-mois-jour h: mm: ss

Je ne sais pas dans quel format est ma colonne actuelle mais je sais que c'est censé être un horodatage.

Toute aide sera formidable, merci!

7
nak5120

Avez-vous essayé d'utiliser des fonctions comme from_unixtime? Vous pouvez l'utiliser pour convertir le temps Unix en horodatage, puis vous pouvez utiliser date_format pour l'afficher comme vous le souhaitez. Notez que dans votre exemple, votre temps Unix est en microsecondes, donc vous voudrez peut-être le convertir d'abord en millisecondes.

Je n'ai pas testé cela mais je suppose que votre code devrait ressembler à:

date_format(from_unixtime(col2/1000), '%Y-%m-%d %h:%i:%s')

Remarquerez que from_unixtime accepte également un fuseau horaire.

Veuillez visiter cette page pour voir plus de détails sur les fonctions liées à la date: https://docs.starburstdata.com/latest/functions/datetime.html

7
kokosing

Utilisez simplement from_unixtime:

from_unixtime(Col2/1000, 'yyyy-MM-dd HH:mm:ss')
0
林敬言