之间的日期查询不按我想要的

时间:2019-06-22 21:11:24

标签: sql-server

我正在处理SQL查询,它在两个日期“ from”到“ to”之间记录,如下图所示。我的查询工作正常,但是当我将“ to”日期从24更改为23时,则不显示23个日期的记录,表示不显示最后一行。

enter image description here 我的SQL查询如下:

select  *  from  prescription_master where  (pr.date between @from_date and @to_date) or (pr.date=@to_date)

我希望当我从“到”日期选择器中选择23个日期时也显示23个日期的记录。为此,我在上面的查询中使用“或(pr.date=@to_date)”,但它不起作用。我可以解决这个问题。

1 个答案:

答案 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进行比较