[英]Time zone datetime comparison in sql server 2016
In the database I have timezone and date as : 在数据库中,我的时区和日期为:
Timezone 'India Standard Time' 时区 “印度标准时间”
DateTime '2018-07-19 15:47' DateTime'2018-07-19 15:47'
In Sql query I am comparing this with GETUTCDATE() 在Sql查询中,我将此与GETUTCDATE()进行比较
IF EXISTS( SELECT * FROM [dbo].[Notification] WHERE [Published] AT TIME ZONE 'India Standard Time' < GETUTCDATE())
BEGIN
PRINT 'True'
END
This give me wrong result 这给我错误的结果
I am new with this function so don't know exact way to compare it 我是这个功能的新手,所以不知道确切的比较方法
There are many approaches to get this working - 有很多方法可以使此工作正常进行-
My approach is to convert your GETUTCDATE to IST so that you can run your query without any timezone issues. 我的方法是将GETUTCDATE转换为IST,以便您可以运行查询而不会出现任何时区问题。
SELECT * FROM [dbo].[Notification]
WHERE [Published] < CONVERT(datetime,SWITCHOFFSET(CONVERT(datetimeoffset,GETUTCDATE()),’+05:30′))
just use 只是使用
dateadd(MINUTE, 330, getutcdate())
dateadd(MINUTE,330,getutcdate())
in place of 代替
getutcdate()
getutcdate()
for IST 对于IST
SELECT * FROM [dbo].[Notification] WHERE [Published] < dateadd(MINUTE, 330, getutcdate())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.