我需要从 Axapta-tables 中获取时间戳TSQL
,每次都没有时区和/或日光偏差,例如从 table JMGABSENCECALENDAR
。
将此作为初始方法,并考虑this,它适用于当前时间。但是从引用其他时间戳的表中读取数据,第二个链接中提供的解决方案没有获取到指定时间的日光信息。
例如:
我添加了今天的缺席(2012-01-07)。现在,使用 SSMS,读取这个数据集会导致
开始时间 =2013-01-06 23:00:00.000
和结束时间 =2013-01-07 23:00:00.000
没关系,我可以使用
DECLARE @UTCOffset SMALLINT
EXEC master..xp_regread
'HKEY_LOCAL_MACHINE',
'SYSTEM\CurrentControlSet\Control\TimeZoneInformation',
'ActiveTimeBias',
@UTCOffset OUTPUT
SELECT DATEADD(MINUTE, @UTCOffset, GETDATE()) AS UTCTime
删除偏移量。这在实际日期上效果很好,但是删除过去或未来时间的偏移量的正确方法是什么,例如2012-07-01
?
在这里,由于夏令时,偏移量为 120 分钟。读取 Reg-Value 仅返回当前偏移量。
该任务必须在 TSQL 2008 中解决。