我正在尝试制作一个SELECT
能给我带来两个日期之间的所有记录的记录。但是,我想忽略时间(小时、分钟、秒等......)。例如,我有一条记录2016-11-14 11:47:56.207
,但我通过参数发送给我stored procedure
唯一的14-11-2016
. 如果我像这样发送它,我不会得到任何结果。
WHERE GRP.GRP_Fecha BETWEEN @desde AND @hasta
我正在尝试制作一个SELECT
能给我带来两个日期之间的所有记录的记录。但是,我想忽略时间(小时、分钟、秒等......)。例如,我有一条记录2016-11-14 11:47:56.207
,但我通过参数发送给我stored procedure
唯一的14-11-2016
. 如果我像这样发送它,我不会得到任何结果。
WHERE GRP.GRP_Fecha BETWEEN @desde AND @hasta
在您的情况下,我建议您避免任何涉及
convert
使用 field 进行一种或另一种类型转换的解决方案GRP_Fecha
。通过这样做,如果字段有索引,则不允许 SQL Server 能够使用索引GRP_Fecha
,这会以非常明显的方式影响您的性能。当然
between
,由于您的问题中已经提到的原因,在这种特定情况下并不理想。我建议以下条件以获得最佳性能(良好使用索引)并避免时间问题:
在以下情况下:
@desde
=2016-11-01
@hasta
=2016-11-14
...条件等于:
在询问之前的日期时
2016-11-15
,这包括不2016-11-14
考虑时间的所有日期。我用
convert
. 对于您的情况,它将是即使它具有年/月/日格式,这也适用于您:Hour:Min:Seg