首页 > 解决方案 > 时区无关的日期时间查找

问题描述

截至周日,我们的查询遇到了问题:

SELECT COUNT(*) / 5 AS count 
FROM [dbo].[LogisticalOrderLines_shadow] 
WHERE SentToBI >= DATEADD(MINUTE, 55, GETDATE())

这应该返回每分钟发送的平均消息(基于过去 5 分钟)但是自星期一以来,此查询未返回预期结果。

我们使用本地时区(以前是 utc+1,现在是 utc+2)将时间存储在我们的数据库中。为了防止必须每半年更改一次,我想把它变成一个查询,无论服务器所在的时区如何,它都可以正常运行。但这似乎是一个相当大的问题,因为我们不存储 utc 时间。 .

如果可能的话,我会怎么做。

PS:发生了一件非常奇怪的事情,今天早上仅仅几个小时,我将查询更改为使用 -5 而不是 +55 并且它确实有效,这是获得正确金额的唯一方法。但是现在我不得不再次将其更改为 115(这实际上是我所期望的,它是 UTC +2 等)。所以这很奇怪,我没有解释。

标签: sqlsql-servertsqldatetimetimezone

解决方案


推荐阅读