我正在使用应用程序(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相关联的记录。任何人都可以帮我这个吗?
答案 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
这将照顾您的日期时间问题