PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Presto SQL :Zmiana stref czasowych za pomocą ciągu stref czasowych w wyniku zapytania nie działa

AT TIME ZONE akceptuje tylko literał lub interwał.

Presto 320 dodaje with_timezone (dla timestamp wartości) at_timezone (dla timestamp with time zone wartości) dokładnie w tym celu.

Jeśli używasz starszej wersji Presto (takiej jak Athena w chwili pisania tego tekstu), możesz skorzystać z następującego obejścia. Możesz rzutować swoją wartość sygnatury czasowej na varchar , połącz ze strefą i rzutuj 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)

(Uwaga:testowane na Presto 320. Jeśli to nie działa jeszcze na Athenie, daj mi znać.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC COPY z mrówką

  2. Jak w psql uruchomić pętlę dla zapytania Select z CTE i wyświetlić dane wyjściowe, jeśli uruchomię je w bazie danych tylko do odczytu?

  3. Dlaczego potrzebujemy brokerów komunikatów, takich jak RabbitMQ, nad bazą danych, taką jak PostgreSQL?

  4. Zrozumienie operacji wsadowych JDBC

  5. UPDATE za pomocą ORDER BY