SQL Server:BETWEEN DATES在此期间之外提供记录

时间:2017-10-04 14:55:45

标签: sql-server sql-server-2008 ssrs-2008

我正在使用应用程序(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相关联的记录。任何人都可以帮我这个吗?

3 个答案:

答案 0 :(得分:0)

不要将日期转换为字符串。执行此操作时,您允许SQL Server按字母顺序进行比较,而不是按实际日期顺序进行比较。

答案 1 :(得分:0)

也许你有语言冲突(美国和英国),而SQL Server实际上是将该日期视为1月2日。 这篇文章提供有关语言和日期的信息:(SQL Server Datetime issues. American vs. British?

答案 2 :(得分:0)

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

@begdt = '20170101'
@enddt = '20170131'

WHERE column1 >= @begdt AND column2 < @enddt

这将照顾您的日期时间问题