调整sql以适应由于白天节省时间而输入数据库的错误日期

xurqigkl  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(208)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

昨天关门了。
改进这个问题
我正在尝试创建sql查询:

select *
from tbl1
where date1 between @start and @end

在英国夏令时更改之前,此查询始终有效。
在使用示例数据测试了查询之后,查询似乎运行良好,这使我相信用于创建表中记录的应用程序不能很好地使用夏令时。换句话说,在夏令时存储在数据库中的日期是错误的。
我已经和应用程序的开发者谈过了,他们似乎对修复他们的应用程序不感兴趣,这让我陷入了一种奇怪的境地,不得不对我的报告进行调整,以迎合糟糕的数据。
如何调整上面的查询以适应在数据库中输入错误的日期?

uplii1fm

uplii1fm1#

从sql server 2016开始,您可以使用at时区应用特定的基于dst的处理。详情

DECLARE @start DATETIME, @end DATETIME
SELECT @start =  CONVERT(DATETIME2(0), '2015-03-29T02:02:00', 126)     
AT TIME ZONE 'Central European Standard Time'; 
SELECT @end = CONVERT(DATETIME2(0), '2015-03-29T05:02:00', 126)     
AT TIME ZONE 'Central European Standard Time'; 

select *
from tbl1
where date1 between @start and @end

相关问题