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. PostgreSQLアクセント+大文字と小文字を区別しない検索

    2. ORA-01790を提供する再帰SQL

    3. postgres外部キーはインデックスを意味しますか?

    4. SQL ::Abstractを使用してSQLクエリを生成するにはどうすればよいですか?