[I 認爲我有這個權利,但想檢查。做時區的東西有時候會讓我頭腦發熱!]在當地時區獲取日期/時間
我有一張表格,其中包含一個表示期望交付日期(無時間值)的普通DATE列。我可以將其鏈接到另一張表格,該表格提供了澳大利亞國家代碼。我想確定交付時間是否到達,並記住服務器運行在單個時區(例如澳大利亞/珀斯),並且不得早於下午3點向客戶發送通知。
所以要確定什麼時候(在服務器上)我應該發送通知。如果客戶記錄是在悉尼創建的,並且我等到下午3點,那就太晚了,因爲珀斯的下午3點是悉尼的下午5點或下午6點,這取決於夏令時間。
的樣本數據:
CREATE TABLE custorders
(delivery_date DATE
,state VARCHAR2(3));
INSERT INTO custorders VALUES (DATE '2014-01-30', 'ACT');
INSERT INTO custorders VALUES (DATE '2014-01-30', 'NSW');
INSERT INTO custorders VALUES (DATE '2014-01-30', 'NT');
INSERT INTO custorders VALUES (DATE '2014-01-30', 'QLD');
INSERT INTO custorders VALUES (DATE '2014-01-30', 'SA');
INSERT INTO custorders VALUES (DATE '2014-01-30', 'TAS');
INSERT INTO custorders VALUES (DATE '2014-01-30', 'VIC');
INSERT INTO custorders VALUES (DATE '2014-01-30', 'WA');
假設服務器在珀斯(華盛頓州)的運行,我們在中午12點運行作業:
預期結果:
STATE LOCAL_TIME
===== ==========
ACT 15:00
NSW 15:00
NT 13:30
QLD 14:00
SA 14:30
TAS 15:00
VIC 15:00
WA 12:00
我可以然後在將通知發送給該客戶之前檢查LOCAL_TIME是否> = 15:00。
請注意,我只包含'delivery_date'列來說明表的用途 - 我不需要它的時區。 –