PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Presto SQL:Промяната на часови зони с помощта на низ от часови зони, идващ в резултат на заявка, не работи

AT TIME ZONE приема само литерал или интервал.

Presto 320 добавя with_timezone (за timestamp стойности) at_timezone (за timestamp with time zone стойности) точно за тази цел.

Ако използвате по-стара версия на Presto (като Athena от момента на писане), можете да използвате следното решение. Можете да прехвърлите стойността на вашето времево клеймо към varchar , свържете със зоната и прехвърлете към 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)

(Забележка:тествано на Presto 320. Ако това все още не работи на Athena, уведомете ме.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHAINLINK NODE:Как мога да подходя към отстраняването на невъзможни за заключване ORM грешки?

  2. Защо `libpq` използва анкета, а не известяване за извличане на данни?

  3. PostgreSQL:Цикъл, докато дадено условие е вярно

  4. Sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)

  5. Как мога да получа името на таблицата във функция за задействане на PostgreSQL?