在数据库中,时区和日期为:
时区 “印度标准时间”
DateTime '2018-07-19 15:47'
在Sql查询中,我将此与 GETUTCDATE()
进行比较IF EXISTS( SELECT * FROM [dbo].[Notification] WHERE [Published] AT TIME ZONE 'India Standard Time' < GETUTCDATE())
BEGIN
PRINT 'True'
END
这给我错误的结果
我是这个功能的新手,所以不知道确切的比较方法
答案 0 :(得分:0)
有很多方法可以使它工作-
我的方法是将GETUTCDATE转换为IST,以便您可以运行查询而不会出现任何时区问题。
SELECT * FROM [dbo].[Notification]
WHERE [Published] < CONVERT(datetime,SWITCHOFFSET(CONVERT(datetimeoffset,GETUTCDATE()),’+05:30′))
答案 1 :(得分:0)
只需使用
dateadd(MINUTE,330,getutcdate())
代替
getutcdate()
对于IST
SELECT * FROM [dbo].[Notification] WHERE [Published] < dateadd(MINUTE, 330, getutcdate())