sql >> Database >  >> RDS >> PostgreSQL

Presto SQL :Tijdzones wijzigen met behulp van tijdzonetekenreeks die komt als resultaat van een query werkt niet

AT TIME ZONE accepteert alleen letterlijk of interval.

Presto 320 voegt with_timezone toe (voor timestamp waarden) at_timezone (voor timestamp with time zone waarden) precies voor dit doel.

Als u een oudere Presto-versie gebruikt (zoals Athena op het moment van schrijven), kunt u de volgende tijdelijke oplossing gebruiken. U kunt uw tijdstempelwaarde casten naar een varchar , samenvoegen met zone en casten naar 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)

(Opmerking:getest op Presto 320. Als dit nog niet werkt op Athena, laat het me weten.)




  1. Hoe een niet-opgeblazen aantal te berekenen uit een gedenormaliseerde tabel?

  2. Kan een tabel twee externe sleutels hebben?

  3. SQL Server 2008 geïnstalleerd, hoewel de actieve versie nog steeds 2005 is

  4. SSIS-pakketten die op SQL Server zijn geïmplementeerd, terug kopiëren naar Visual Studio 2008