2016-07-12 26 views
1

タイムゾーン付きの日付と時刻を持つテーブルがあります。その後UTCで日付と時刻からタイムスタンプを取得

date_time_table 
+------------+--------------+ 
| date_t | time_tz | 
+------------+--------------+ 
| 2016-05-13 | 23:00:00 -02 | 
| 2016-05-14 | 13:00:00 +06 | 
+------------+--------------+ 

私は 'UTC' 時間クエリのSQLを実行し

SELECT timetz AT TIME ZONE 'UTC' FROM date_time_tz 

結果は次のとおりです。

+--------------+ 
| time_tz | 
+--------------+ 
| 01:00:00 +00 | 
| 07:00:00 +00 | 
+--------------+ 

は私があまりにも日付で計算するためにtime_tzとSQL組み合わせdate_tを書くことができますか?私は期待し

結果は次のとおりです。

+------------+------------+ 
|  date_time_tz  | 
+------------+------------+ 
| 2016-05-14 01:00:00 +00 | 
| 2016-05-14 07:00:00 +00 | 
+------------+------------+ 

私が試してみてください。

SELECT concat(date_t , ' ' ,time_tz) AT TIME ZONE 'UTC' FROM date_time_table 

しかし、それは動作しません。

+0

'timestamp'カラム? –

答えて

0
SELECT concat(date_t , ' ' ,time_tz)::timestamp AT TIME ZONE 'UTC' FROM date_time_table 

列がdatetime種類がある場合は、この

+0

キャストに関する知識をお寄せいただきありがとうございます。 ** SELECT concat(date_t、 ''、time_tz)::タイムスタンプ付きタイムゾーンは、タイムゾーン 'UTC'からdate_time_table ** –

2

のようにキャストしてみてください。

select (current_date + current_time) at time zone 'UTC'; 
      timezone   
---------------------------- 
2016-07-12 12:06:00.239396 

それらの列がテキストであれば:使用していないのはなぜ

select ('2016-01-01'::date + '23:00:00 -02'::timetz) at time zone 'UTC'; 
     timezone  
--------------------- 
2016-01-02 01:00:00 
関連する問題