使用DATEDIFF(MINUTE,GETUTCDATE(),GETDATE())获取本地SQL Server时区偏移量是否安全?

时间:2015-04-17 15:34:27

标签: sql-server

我阅读了有关MS SQL Server的datediff rounding并快速举例:

select datediff(hour,'2015-04-15 19:59:59','2015-04-15 22:00:00')
go

3
(1 row affected)

select datediff(minute,'2015-04-15 19:59:59','2015-04-15 22:00:00')
go

121
(1 row affected)

select datediff(second,'2015-04-15 19:59:59','2015-04-15 22:00:00')
go

7201
(1 row affected)

有很多建议(在博客/ SO中)通过以下方式调整到本地的时间:

DATEADD(MINUTE, DATEDIFF(MINUTE, GETUTCDATE(), GETDATE()), DATETIME_COLUMN)

似乎危险和结果取决于执行查询的时间。

或者保证GETUTCDATE()GETDATE()如果在同一个查询中指向相同的时间戳?

1 个答案:

答案 0 :(得分:1)

他们不是同时给你的,但他们应该在几千分之一秒内给你时间。所以它导致你出现问题的可能性(显示1分钟差异)并不是很高。