sql - 尝试在 SQL 中将太平洋时间转换为 UTC,使用 datetime 声明变量时不断出错
问题描述
我正在尝试获得正确的日期结果,但我想获得 UTC 时间,以便我的数据正确。我想使用 UTC 时间获得星期六的正确结果,我应该使用getdate()
吗?
这是部分查询:
declare @STARTDATE datetime = '07-03-2021 00:00:01'
declare @ENDDATE datetime = '07-03-2021 23:59:59'
select dateadd(hh, datediff(hh, getutcdate(), getdate()), @STARTDATE) as utc_stardate,dateadd(hh, datediff(hh, getutcdate(), getdate()), @endDATE) as utc_enddate
where repackagingtime between utc_stardate and utc_enddate
错误说:
必须声明标量变量
我如何解决它?
更新:
我没有先声明它,但我应该设置为varchar吗?
像这样?
declare @utc_enddate datetime
但是我申请更改后,每天的数据现在都是空白的
解决方案
将 utc 日期变量声明为 DATE 数据类型
您可以像这样将时区转换为 utc(从 est 转换为 utc)。只需将 getdate() 替换为您的可变日期即可。
DECLARE @UTCSTART DATE
SET @UTCSTART = CONVERT(DATE, GETDATE() AT TIME ZONE 'Eastern Standard Time' AT TIME ZONE 'UTC')
推荐阅读
- django - Django admin list filter 根据两个字段计算字段
- matplotlib - 如何正确使用 matplotlib 的 set_xticks?
- javascript - 如何按属性解开html
- c# - unity DOTween UI 缩放悠悠球效果
- c++ - 如何检测 PE 文件中的 UTF16 字符串
- javascript - 如何使用正则表达式限制位数但允许前面有零
- javascript - 限制滑块的顶部和底部
- react-native - 反应原生地图标记卡动画弹出
- types - Rust:预期类型,发现不透明类型
- javascript - iPad 向下滚动时退出全屏模式