删除分钟和秒,然后转换为 UTC 时区
Remove minutes and seconds and then convert to UTC timezone
我有这样的时间戳数据列
2021-12-09 08:01:00.520
我想删除分钟和秒,然后在一行中将日期转换为 UTC 时区。
我试过这个代码
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, Time_Stamp), 0) From Table1
我得到这个结果
2021-12-09 08:00:00.000
我试过这段代码
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), Time_Stamp)From Table1
我得到这个结果
2021-12-09 16:01:00.520
如我所料
2021-12-09 16:00:00.000
如何简单地将select语句合并成一行
将日期转换为字符串并截断以删除分钟和秒。然后添加您的时区和 UTC 之间的分钟差。
select dateadd(minute,datediff(minute,getdate(),getutcdate()),convert(datetime2(0),convert(varchar(13),getdate(),126)+':00:00',126));
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), dateadd(hour, datediff(hour, 0, Time_Stamp), 0)) FROM Table1
这是另一种方法。
要去掉分秒只保留小时,可以使用下面的查询
DATEADD(HOUR, DATEDIFF(HOUR, 0, Time_Stamp), 0)
要转换为 UTCDate
,只需找到 GETDATE()
和 GETUTCDATE()
之间的小时 () 差异(因为您对分和秒不感兴趣)并添加上面的查询
综合起来
DATEADD(HOUR, DATEDIFF(HOUR, 0, Time_Stamp) + DATEDIFF(HOUR, GETDATE(), GETUTCDATE()), 0)
我有这样的时间戳数据列
2021-12-09 08:01:00.520
我想删除分钟和秒,然后在一行中将日期转换为 UTC 时区。
我试过这个代码
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, Time_Stamp), 0) From Table1
我得到这个结果
2021-12-09 08:00:00.000
我试过这段代码
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), Time_Stamp)From Table1
我得到这个结果
2021-12-09 16:01:00.520
如我所料
2021-12-09 16:00:00.000
如何简单地将select语句合并成一行
将日期转换为字符串并截断以删除分钟和秒。然后添加您的时区和 UTC 之间的分钟差。
select dateadd(minute,datediff(minute,getdate(),getutcdate()),convert(datetime2(0),convert(varchar(13),getdate(),126)+':00:00',126));
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), dateadd(hour, datediff(hour, 0, Time_Stamp), 0)) FROM Table1
这是另一种方法。
要去掉分秒只保留小时,可以使用下面的查询
DATEADD(HOUR, DATEDIFF(HOUR, 0, Time_Stamp), 0)
要转换为 UTCDate
,只需找到 GETDATE()
和 GETUTCDATE()
之间的小时 () 差异(因为您对分和秒不感兴趣)并添加上面的查询
综合起来
DATEADD(HOUR, DATEDIFF(HOUR, 0, Time_Stamp) + DATEDIFF(HOUR, GETDATE(), GETUTCDATE()), 0)