我需要从的Axapta表中获取时间戳,例如从表JMGABSENCECALENDAR
开始,每次都没有时区和/或日光偏移。UTC日期时间偏移量
以this作为初始方法,并调整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值仅返回当前的偏移量。
任务在2008年TSQL
感谢您的回答 - 但查找表并不是我的第一选择。 UTC的更改日期可能会有所不同,每年不一样,我不想有需要每年支持的其他表格;)getutcdate()可能取代重新展示的信息+1! – Nico
Nico,我的意思是,你可以生成一次并使用它多年。在我的情况下,我可以创建一个表格,这个表格可以给我所有15年的所有时间,这对于这个客户来说已经足够了。 –