sql - 时区无关的日期时间查找
问题描述
截至周日,我们的查询遇到了问题:
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 等)。所以这很奇怪,我没有解释。
解决方案
推荐阅读
- python - Python Celery 根本不执行周期性任务
- python - 使用 python 自动化的数据透视表也具有 excel 具有的功能
- racket - Racket 的 findf 和 for/first 函数有什么区别?
- flutter - 如何禁用在标签栏内滑动整个屏幕?
- java - 可累加接口
- logging - 如何关闭屏幕登录?我做了一次“screen -L”,现在一个名为 screenlog.0 的文件不断生成
- r - 动态改变 ntile 的顺序
- brave - 当我单击桌面上的电话号码时,如何让 Brave 拨打我同步的电话(不是 HTML 问题)
- python - 使用 pyautogui 在 Mac 上进行屏幕录制
- python - 用 pytest-mock 模拟 sqlalchemy.order_by 不会覆盖调用