sql >> Databáze >  >> RDS >> PostgreSQL

Presto SQL:Změna časových pásem pomocí řetězce časových pásem přicházejícího jako výsledek dotazu nefunguje

AT TIME ZONE přijímá pouze literál nebo interval.

Presto 320 přidává with_timezone (pro timestamp hodnoty) at_timezone (pro timestamp with time zone hodnoty) přesně pro tento účel.

Pokud používáte starší verzi Presto (jako je Athena v době psaní tohoto článku), můžete použít následující řešení. Hodnotu časového razítka můžete přenést do varchar , zřetězit se zónou a přenést na 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)

(Poznámka:testováno na Presto 320. Pokud to na Atheně ještě nefunguje, dejte mi vědět.)




  1. Know-How k obnovení smazaných záznamů v SQL Server

  2. řetězec vs text pomocí Rails 3.2.* a Postgres - mám vždy používat pouze text

  3. Příklad připojení JavaFX MySQL prosím

  4. Jak rychle upravit hodnoty v tabulce v SQL Server Management Studio?