我将UTC日期时间存储在数据库中
e.g。
2018-06-05 11:37:00.000(UTC)
2018-06-05 17:07(+5:30印度标准时间)
我正在抵消:
偏移为+02:00
如何在sql查询中比较现在偏移时间匹配?
e.g。
2018-06-05 13:37:00.000
我的问题是X(IST)日期时间转换为UTC,现在我想转换到不同的时区(Y)
答案 0 :(得分:0)
如果我正确理解您的问题,您可以使用DATEADD函数根据UTC日期时间和偏移计算新的日期时间
例如:
2小时= 120分钟
DATEADD(minute, 120, '2018-06-05 11:37:00.000')
或使用小时
DATEADD(hour, 2, '2018-06-05 11:37:00.000')
你也可以使用负数
您不必使用文字值,您可以为参数3提供列名以供查询使用,并将此表达式用作where子句的一部分
这是DATEADD功能的备忘单:
https://docs.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-2017
答案 1 :(得分:0)
以下功能帮助我解决问题:
<强> 1。 SWITCHOFFSET 强>
<强> 2。 TODATETIMEOFFSET 强>
SELECT GETDATE()
SELECT SWITCHOFFSET(GETDATE(), '+05:30')
SELECT CONVERT(VARCHAR(19), SWITCHOFFSET(TODATETIMEOFFSET(GETDATE(), '+05:30'),'+00:00'), 120)
SELECT GETUTCDATE()