在PostgreSQL 並假定簡化方案集中於轉換您時間戳來IST
這樣,這是一個:
CREATE TABLE locations
(
id serial PRIMARY KEY,
your_timestamp timestamp with time zone
) ;
注:請勿使用timestamp
作爲列名,以避免混淆。 timestamp
已經是type
。
INSERT INTO locations
(your_timestamp)
VALUES
('2017-01-01 10:00:00 UTC'),
('2017-01-01 10:00:00 Europe/Rome'),
('2017-01-01 10:00:00 America/New_York'),
('2017-01-01 10:00:00 IST') ;
你會轉換所有這些時間(不僅已經進入作爲UTC的那些,或與客戶端連接到數據庫的本地時區),你可以使用:
SELECT
id,
your_timestamp,
your_timestamp AT TIME ZONE 'UTC' AS timestamp_utc,
your_timestamp AT TIME ZONE 'IST' AS timestamp_ist
FROM
locations ;
id | your_timestamp | timestamp_utc | timestamp_ist
-: | :--------------------- | :------------------ | :------------------
1 | 2017-01-01 10:00:00+00 | 2017-01-01 10:00:00 | 2017-01-01 12:00:00
2 | 2017-01-01 09:00:00+00 | 2017-01-01 09:00:00 | 2017-01-01 11:00:00
3 | 2017-01-01 15:00:00+00 | 2017-01-01 15:00:00 | 2017-01-01 17:00:00
4 | 2017-01-01 08:00:00+00 | 2017-01-01 08:00:00 | 2017-01-01 10:00:00
你可以在檢查dbfiddle here
個參考文獻:
我不知道MySQL的當量。我希望你實際上使用的是PostgreSQL,因爲你的標識符是"double quoted"
而不是MySQL中的`backtick quoted`
。
什麼是您的實際*問題*? – joanolo
我必須使用mysql查詢 – Addictd