首页 > 解决方案 > GETDATE() 和通过侦听器连接的多个服务器

问题描述

我们有 3 台服务器伦敦、阿姆斯特丹、法兰克福。通过监听器连接。因此,使用 GetDate() 填充表格等将根据是否连接到伦敦而给出不同的结果。什么是始终获得伦敦时间的最简单方法。

谢谢杰夫

标签: ssislistenergetdate

解决方案


最容易使用 GETUTCDATE() 代替。返回的datetimeoffset是明确的。要获得英国时间,请使用 AT TIME ZONE 进行转换,然后转换为datetimedatetime2

SELECT CONVERT(datetime2(0),CONVERT(datetimeoffset,GETUTCDATE()) AT TIME ZONE 'GMT 
Standard Time')

请注意,时区“格林威治标准时间”返回格林威治标准时间,这不是夏季的英国时间。时区“GMT 标准时间”反映夏季和冬季的英国时间 - 这不是GMT,而是夏季的 GMT+1。这似乎没有记录,名称也没有帮助!


推荐阅读