sql >> Databasteknik >  >> RDS >> PostgreSQL

Presto SQL:Ändra tidszoner med tidszonsträng som kommer som ett resultat av en fråga fungerar inte

AT TIME ZONE accepterar endast bokstavlig eller intervall.

Presto 320 lägger till with_timezone (för timestamp värden) at_timezone (för timestamp with time zone värden) exakt för detta ändamål.

Om du använder en äldre Presto-version (som Athena när detta skrivs) kan du använda följande lösning. Du kan casta ditt tidsstämpelvärde till en varchar , sammanfoga med zon och casta till timestamp with time zone .

presto> select cast(cast(t as varchar) || ' ' || zone as timestamp with time zone)
  from (values (timestamp '2017-06-01 12:34:56.789', 'US/Pacific')) x(t, zone);
                    _col0
---------------------------------------------
 2017-06-01 12:34:56.789 America/Los_Angeles
(1 row)

(Obs:testat på Presto 320. Om detta inte fungerar på Athena än, låt mig veta.)




  1. MariaDB datumformatsträngar

  2. Hur skapar man inkrementerande kolumner?

  3. spring-boot webbapp förlorar förmågan att ansluta till MySQL / RDS efter ett tag

  4. PostgreSQL:seriell vs identitet