什么是在日期(没有时间)处理SQL查询的最佳方法?

Dav*_*len 2 sql sql-server ado.net datetime

我们的数据库中有日期列,就像出生日期一样.但是,SQL Server将它们存储为日期和时间,并且记录中的时间具有各种值(不知道它是如何以这种方式结束的).

问题是人们将为所有人运行查询,birthdates <= {some date}并且不返回相同的查询,因为DateTime设置为给定日期的(使用ADO.NET)具有午夜时间.

我明白发生了什么.问题是如何最好地处理这个问题.我们可以在23:23:59.999999999的时间内强行到日期,但感觉它会有问题.

处理此问题的最佳标准是什么?

dot*_*joe 7

只需将1天添加到{some_date}并使用小于比较.只是确保它是第二天上午12点...

  • +1同意100%.任何其他技巧都容易因转换为错误类型而导致错误(例如,如果数据类型为SMALLDATETIME,则为23:59:997向上舍入). (2认同)