SQL Server:日期之间将记录带到了周期之外



我正在使用应用程序(EHR系统),并且需要将记录带入SSRS记录中的特定日期范围。在脚本中,我格式化日期变量并适用于列。

Convert(varchar(10), @begdt, 101) + ' 00:00:00' and 
Convert(varchar(10), @enddt, 101) + ' 23:59:59'

如果我将开始日期和结束日期设置为01/01/2017和01/31/2017,则将其拉出与02/01/2017关联的记录。谁能帮助我?

不要将日期转换为字符串。当您这样做时,您允许SQL Server按字母顺序比较它们,而不是在实际日期顺序中进行比较。

也许您有语言冲突(US与UK),而SQL Server实际上将该日期视为1月2日。这篇文章提供了有关语言和日期的信息:( SQL Server DateTime问题。美国与英国人?)

不要在之间使用,并将日期格式设置为不同:

@begdt = '20170101'
@enddt = '20170131'
WHERE column1 >= @begdt AND column2 < @enddt

这将照顾您的DateTime问题

最新更新