1. 程式人生 > >實行夏令時的國家,資料的日期操作需要注意了 DATE TO NUMBER,NUMBER TO DATE

實行夏令時的國家,資料的日期操作需要注意了 DATE TO NUMBER,NUMBER TO DATE

在沒有夏令時的中國,可以很簡單的實現:
/* Formatted on 3/21/2013 13:58:29 (QP5 v5.240.12305.39446) */
CREATE OR REPLACE FUNCTION NUMBER2DATE (i_number NUMBER)
  RETURN DATE
AS
BEGIN
  RETURN   TO_DATE ('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
         + i_number / (24 * 60 * 60 * 1000);
END;
/

CREATE OR REPLACE FUNCTION DATE2NUMBER (i_date IN DATE)
  RETURN NUMBER
AS
BEGIN
  RETURN   (  i_date
            - TO_DATE ('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss'))
         * (24 * 60 * 60);
END;


目前實行夏時制的地區

這張圖是2007年英國格林尼治全年的日出日落時間變化圖,可以看到夏時制引起的日出日落巨大變化
  • 美國原本於每年4月的第一個星期日凌晨2時起至10月的最後一個星期日凌晨2時實施夏令時間;但經美國國會2005年通過的能源法案,自2007年起延長夏令時間,開始日期從每年4月的第一個星期日,提前到3月的第二個星期日,結束日期從每年10月的最後一個星期日,延後到11月的第一個星期日
  • 加拿大夏時制實施日期一向跟美國一致,在美國2005年修法後,加拿大各省也在2007年3月美新法實施前完成修法。加國好幾個處於時區邊界的地區(包括
    薩斯喀徹溫省
    大部分地區和其他幾個較小地區)不實施夏時制。另外,加國春秋撥鐘時刻由各省自行決定,但在紐芬蘭2011年修法以後,現在全國都跟美國一樣在凌晨2時撥鐘。
 目前正實行夏令時間的地區  曾經實行夏令時間但目前沒有使用的地區  從來沒有實行過夏令時間的地區
  • 歐盟國家和瑞士都是從3月最後一個星期日到10月最後一個星期日實行夏時制。歐盟國家在三月最後一個星期日協調世界時01:00同時撥快一小時,在十月的最後一個星期日協調世界時01:00進行相反的調整。
  • 墨西哥從4月第一個星期日到10月最後一個星期日實行夏時制。
  • 紐西蘭由於處於南半球,所以夏季和北半球相反。它從9月最後一個星期日到4月第一個星期天實行夏時;
  • 澳大利亞只有東部和南部各州實行夏時制,原本從10月最後一個星期天到4月第一個星期天止。2008年東南各州跟從塔斯馬尼亞島夏令時,則在10月第一個星期天開始實行夏時制。西澳大利亞州從2006年底起開始為期三年的夏時制試驗,2009年,當地選民投票決定取消夏令時。

曾經實行夏時制的地區

  • 臺灣,曾因全球能源危機實施。每次起訖日期略有更動,正式名稱則稱為「夏令時間」或「日光節約時間」。惟1980年起,因民間對此制度反應不佳,再度停止至今。[1]
夏令時實施期間,將時間向前調快一小時。
  • 1919年中華民國上海天津曾短暫地實行了一年夏時制。正式記錄中,則從1945年起陸續實施過,但因部分專家學者反對,認為該時制易導致時間使用混亂,而於1941年1979年間停止使用。
  • 香港曾於1941年4月1日至1979年10月21日期間,多在夏季時段實施夏令時間(1977年1978年未有實行),香港夏令時間的計算方法為香港標準時間加1小時。在日治時期的幾年間(1942年1945年)曾全年實施,當時香港時間與日本本土時間實際上一致,1980年後不再實行,詳情請參閱香港時間
  • 澳門曾於1946年4月30日1979年10月21日期間,多在夏季時段實施夏令時間(1977年1978年未有實行)。
  • 1986年1991年中華人民共和國在全國範圍實行了六年夏時制,每年從4月中旬的第一個星期日2時整(北京時間)到9月中旬第一個星期日的凌晨2時整(北京夏令時)。除1986年因是實行夏時制的第一年,從5月4日開始到9月14日結束外,其它年份均按規定的時段施行。由於省電效果不抵需要適應時間的弊端,1992年4月5日後不再實行。
    • 實行夏時制的建議最早由竇星元提出。1986年4月,中共中央辦公廳國務院辦公廳發出《在全國範圍內實行夏時制的通知》,通知動員全國人民為節約能源而早睡早起,並要求全國各部門做好宣傳和安排工作。具體作法是:每年從四月中旬第一個星期日的凌晨2時整(北京時間),將時鐘撥快一小時,即將錶針由2時撥至3時,夏令時開始;到九月中旬第一個星期日的凌晨2時整(北京夏令時間),再將時鐘撥回一小時,即將錶針由2時撥至1時,夏令時結束。在夏令時開始和結束前幾天,新聞媒體均刊登有關部門的通告。值得注意的是,夏令時中出生的人,生時須減去一小時。
  • 中國不適合使用夏令時的原因:
    • 中國新疆雲南四川西藏等地實行的都是北京時間,實際上已經全年實行夏令時。在中國,夏時制只對東北華北華東等東部地區起作用。例如,新疆西部的喀什等地區時間已經快上3小時多,是世界上時區偏差最大的地方之一。如果這裡也用夏令時,偏差就更大,當地很有可能在時間顯示10點時才天亮,嚴重影響生活秩序。
    • 中國大多數的平民都已習慣北京時間,實行夏令時對於他們來說難以接受,認為多此一舉。
    • 夏時制使鐵路和航班需要每年修改時間表,造成麻煩和不便。
  • 俄羅斯曾經使用過數十年的夏令時制度。2011年3月27日,俄羅斯總統梅德韋傑夫下令,2012年起俄羅斯全國停止夏時制。2011年夏時制實行後年底不再將表回撥,所以相當於全國時區往前了一個小時。
所以在將DATE型別資料轉換成NUMBER型別時一定要注意了,2007年及之前,夏令時的實行方式還不一樣,所以要分開處理。 中國已經取消了夏令時,可是國外很多都是使用,所以涉及到收費的系統,在底層資料庫處理日期時間時非常重要。