zoukankan      html  css  js  c++  java
  • sql 時區時間 Local Time Zone

    --時區時間 Local Time Zone Geovin Du 塗聚文
    --http://www.bigresource.com/MS_SQL-Converting-UTC-datetime-values-to-local-time-zones-XDKMI9sG.html
    
    
    SELECT GETUTCDATE()
    
    SELECT GETDATE()
    
    select CONVERT(varchar(100), GETUTCDATE(), 21)
    
    
    SELECT DATEDIFF(hh,'2008-05-20 20:08:01.020', '2008-05-20 16:08:01.020')
    
    DECLARE @UTC DATETIME
    EXECUTE @UTC = UTCtoLocalDate '2008-05-20 20:08:01.020', 8
    select @UTC
    
    
    DECLARE @UTC DATETIME,@d varchar(100)
    Set @d=CONVERT(varchar(100), GETUTCDATE(), 21)
    EXECUTE @UTC = UTCtoLocalDate  @d, 8
    select @UTC
    
    
    --時區存儲過程 Geovin Du 塗聚文
    IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'UTCtoLocalDate')
    DROP PROCEDURE UTCtoLocalDate
    GO
    CREATE FUNCTION [dbo].[UTCtoLocalDate] 
    (
     @UTCDate DATETIME,  --UTC標准時間
     @TZ INT            --時區
    ) 
    RETURNS DATETIME AS 
    BEGIN 
    IF ( DATEPART(hh, @UTCDate) <> 0 ) 
    BEGIN 
    DECLARE @LocalDate DATETIME 
    DECLARE @UTCDelta INT 
    DECLARE @thisYear INT 
    DECLARE @DSTDay INT 
    DECLARE @NormalDay INT 
    DECLARE @DSTDate DATETIME 
    DECLARE @NormalDate DATETIME 
    SET @thisYear = YEAR(@UTCDate) 
    IF (@thisYear < 2007 ) 
     BEGIN 
      SET @DSTDay = ( 2 + 6 * @thisYear - FLOOR(@thisYear / 4) ) % 7 + 1 
      SET @NormalDay = ( 31 - ( FLOOR( @thisYear * 5 / 4) + 1) % 7) 
      SET @DSTDate = '4/' + CAST(@DSTDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM' 
      SET @NormalDate = '10/' + CAST(@NormalDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM' 
     END 
    
    ELSE 
     BEGIN 
      SET @DSTDay = ( 14 - ( FLOOR( 1 + @thisYear * 5 / 4 ) ) % 7 ) 
      SET @NormalDay = ( 7 - ( FLOOR ( 1 + @thisYear * 5 / 4) ) % 7 ) 
      SET @DSTDate = '3/' + CAST(@DSTDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM' 
      SET @NormalDate = '11/' + CAST(@NormalDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM' 
     END
    IF ((@UTCDate > @DSTDate) AND (@UTCDate < @NormalDate))
     BEGIN 
      SET @UTCDelta = @TZ + 1 
     END 
    ELSE 
     BEGIN 
      SET @UTCDelta = @TZ
     END 
    -- now convert utc date to local date 
    SET @LocalDate = DATEADD(Hour, @UTCDelta, @UTCDate) 
    END
    ELSE 
     BEGIN 
      SET @LocalDate = @UTCDate 
     END 
    
    RETURN(@LocalDate) 
    END 
    GO 
    /*
    常用的几个时区: 
    GMT:Greenwich Mean Time 
    ET:U.S. Eastern Time -5 
    PST:Pacific Standard Time -8
    
    GMT -11:00 Samoa 
    GMT -10:00 U.S. Hawaiian Time 
    GMT -09:30 Marquesas 
    GMT -09:00 U.S. Alaska Time 
    GMT -08:30 Pitcarn 
    GMT -08:00 Pacific Time 
    GMT -07:00 U.S. Mountain Time 
    GMT -07:00 U.S. Mountain Time (Arizona) 
    GMT -06:00 U.S. Central Time 
    GMT -06:00 Mexico 
    GMT -05:00 U.S. Eastern Time 
    GMT -05:00 U.S. Eastern Time (Indiana) 
    GMT -05:00 Columbia, Peru, South America 
    GMT -04:00 Atlantic Time 
    GMT -03:30 Newfoundland, Canada 
    GMT -03:00 Argentina 
    GMT -03:00 Brazil 
    GMT -02:00 Mid-Atlantic 
    GMT -01:00 Azores 
    GMT U.K., Spain 
    GMT +01:00 Western Europe 
    GMT +02:00 Eastern Europe 
    GMT +02:00 Egypt 
    GMT +02:00 Israel 
    GMT +03:00 Russia 
    GMT +03:00 Saudi Arabia 
    GMT +03:30 Iran 
    GMT +04:00 Arabian 
    GMT +04:30 Afghanistan 
    GMT +05:00 Pakistan, West Asia 
    GMT +05:30 India 
    GMT +06:00 Bangladesh, Central Asia 
    GMT +06:30 Burma 
    GMT +07:00 Bangkok, Hanoi, Jakarta 
    GMT +08:00 China, Taiwan 
    GMT +08:00 China, beijing
    GMT +08:00 Singapore 
    GMT +08:00 Australia (WT) 
    GMT +09:00 Japan 
    GMT +09:00 Korea 
    GMT +09:30 Australia (CT) 
    GMT +10:00 Australia (ET) 
    GMT +10:30 Australia (Lord Howe) 
    GMT +11:00 Central Pacific 
    GMT +11:30 Norfolk Islands 
    GMT +12:00 Fiji, New Zealand
    */
    
    哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)成功.---Geovin Du(涂聚文)
  • 相关阅读:
    Shell脚本sed命令
    Shell脚本常用unix命令
    Shell的case语句
    3.5.2 数值之间的转换
    3.5.1 数学函数与常量
    3.5 运算符
    3.4.2 常量
    3.4.1 变量初始化
    3.4 变量
    Python异常捕捉的一个小问题
  • 原文地址:https://www.cnblogs.com/geovindu/p/2495703.html
Copyright © 2011-2022 走看看