实行夏令时的国家,数据的日期操作需要注意了 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年及之前,夏令时的实行方式还不一样,所以要分开处理。

中国已经取消了夏令时,可是国外很多都是使用,所以涉及到收费的系统,在底层数据库处理日期时间时非常重要。




你可能感兴趣的:(实行夏令时的国家,数据的日期操作需要注意了 DATE TO NUMBER,NUMBER TO DATE)