sql >> Database teknologi >  >> RDS >> PostgreSQL

Presto SQL:Ændring af tidszoner ved hjælp af tidszonestreng, der kommer som et resultat af en forespørgsel, virker ikke

AT TIME ZONE accepterer kun bogstaver eller interval.

Presto 320 tilføjer with_timezone (for timestamp værdier) at_timezone (for timestamp with time zone værdier) præcis til dette formål.

Hvis du bruger ældre Presto-version (såsom Athena i skrivende stund), kan du bruge følgende løsning. Du kan caste din tidsstempelværdi til en varchar , sammenkæde med zone og cast til 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)

(Bemærk:testet på Presto 320. Hvis dette ikke virker på Athena endnu, så lad mig det vide.)




  1. Bruger SqlDependency med navngivne køer

  2. dvale opdaterer delvist, når entitet parses med json

  3. Indeksering for nøglesæt-paginering i mysql

  4. PHP MySQL sæt Connection Timeout