查询在大于等于且小于等于时表现不同

时间:2015-03-30 16:43:09

标签: sql database

我在数据库中有一条记录,其日期在2015年3月31日。如果我使用startdate:>="2015-03-01" AND startdate:<="2015-03-31",那么我得不到结果但是如果我使用startdate:>="2015-03-01" AND startdate:<"2015-04-01"那么我得到预期的结果。不是startdate:<="2015-03-31"startdate:<"2015-04-01"几乎相同吗?请指教。

1 个答案:

答案 0 :(得分:2)

这取决于数据类型。如果您使用的是SQL Server,并且使用的是数据类型datetime,那么您既有日期又有时间。因此2015-03-31表示2015-03-31 00:00:002015-04-01表示2015-04-01 00:00:00,因此您会错过一天。

另一方面,这两个条件几乎完全相同:

startdate:<"2015-04-01"
startdate:<="2015-03-31 23:59:59"