我正在处理SQL查询,它在两个日期“ from”到“ to”之间记录,如下图所示。我的查询工作正常,但是当我将“ to”日期从24更改为23时,则不显示23个日期的记录,表示不显示最后一行。
select * from prescription_master where (pr.date between @from_date and @to_date) or (pr.date=@to_date)
我希望当我从“到”日期选择器中选择23个日期时也显示23个日期的记录。为此,我在上面的查询中使用“或(pr.date=@to_date)”,但它不起作用。我可以解决这个问题。
答案 0 :(得分:1)
您必须处理时间部分:
select *
from prescription_master
where (CAST(pr.date AS DATE) between @from_date and @to_date)
or (CAST(pr.date AS DATE) = @to_date)
-- this also will made a query non-SARGable
提供参数时,日期设置为23-06-2019 00:00:00
,并且将其与23-06-2019 13:08:00
进行比较