从 DBA 的角度查看新的 DST 2007






4.14/5 (3投票s)
2007年1月31日
1分钟阅读

26829

277
如何检查您的 Microsoft SQL Server 2005 是否已准备好迎接新的 DST 2007。
前导码
由于美国国会在2005年8月通过的《能源政策法案》,从2007年起夏令时将发生以下变化:
之前的夏令时(开始) | 新的夏令时(开始) | 之前的夏令时(结束) | 新的夏令时(结束) |
4月的第一个星期日 | 3月的第二个星期日 | 10月的最后一个星期日 | 11月的第一个星期日 |
2007年4月1日 | 2007年3月11日 | 2007年10月28日 | 2007年11月4日 |
本文档将向您展示如何检查您的Microsoft SQL Server 2005是否已准备好迎接新的2007年夏令时。
技术详情
托管程序集ConvertTime.dll包含1个存储过程(ufnDisplayUTC
)和2个函数(ufnToLTime
和ufnToUTime
),如下所示:
ufnDisplayUTC
显示有关当前夏令时信息。例如:Timezone: . . . . . . Eastern Standard Time New DST for 2007: . . 2007-03-11 02:00 to 2007-11-04 02:00 (01:00:00) Current time: . . . . 1/31/2007 11:30:32 AM Universal time: . . . 1/31/2007 4:30:32 PM UTC offset: . . . . . -05:00:00 Daylight saving? . . No
ufnToUTime(@strDateTime)
返回给定本地日期和时间的通用日期和时间。例如:select dbo.ufnToUTime('2007-03-11 02:00:00.000') --3/11/2007 7:00:00 AM
ufnToLTime(@strDateTime)
返回给定通用日期和时间的本地日期和时间。例如:select dbo.ufnToLTime('2007-03-11 07:00:00.000') --3/11/2007 3:00:00 AM
实现
在Microsoft SQL Server Management Studio中针对AdventureWorks等数据库执行以下脚本:
CREATE ASSEMBLY [ConvertTime]
FROM 'ConvertTime.dll'
WITH PERMISSION_SET = SAFE
GO
CREATE FUNCTION [dbo].[ufnToLTime](@strDateTime [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS EXTERNAL NAME [ConvertTime].[MCSCS.SQL2005.UserDefinedFunctions].[ufnToLTime]
GO
CREATE FUNCTION [dbo].[ufnToUTime](@strDateTime [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS EXTERNAL NAME [ConvertTime].[MCSCS.SQL2005.UserDefinedFunctions].[ufnToUTime]
GO
CREATE PROCEDURE [dbo].[ufnDisplayDST]
AS
EXTERNAL NAME [ConvertTime].[MCSCS.SQL2005.UserDefinedFunctions].[ufnDisplayDST]
GO
测试
如果您的服务器尚未安装新的2007年夏令时补丁,您将观察到以下结果:
select dbo.ufnToUTime('2007-03-11 02:00:00.000')
--3/11/2007 7:00:00 AM
select dbo.ufnToUTime('2007-03-11 03:00:00.000')
--3/11/2007 8:00:00 AM
但是,如果您的服务器已安装新的2007年夏令时补丁,您将观察到以下结果:
select dbo.ufnToUTime('2007-03-11 02:00:00.000')
--3/11/2007 7:00:00 AM
select dbo.ufnToUTime('2007-03-11 03:00:00.000')
--3/11/2007 7:00:00 AM
结论
有关如何为服务器打补丁的更多信息,请查看以下URL:http://www.microsoft.com/windows/timezone/dst2007.mspx。
历史
- 2007年1月31日:初始发布