SQL日期比较问题

时间:2016-07-15 07:03:55

标签: sql sql-server

第一个查询如何返回今天和昨天的记录,但第二个查询仅返回昨天的记录?

第一

SELECT 
  * 
FROM 
  table
WHERE
  DateTimeOfInsert >= '20160714'

第二

SELECT 
  * 
FROM 
  table
WHERE
    DateTimeOfInsert >= '20160714' 
  AND 
    DateTimeOfInsert <= '20160715'

我无法使用BETWEEN,因为只允许提供start / end个日期中的一个。

2 个答案:

答案 0 :(得分:4)

你错过了时间。您在技术上搜索2016-07-14 00:00:00至2016-07-15 00:00:00,其中仅包含2016-07-14数据。

如果你需要在两天内找到,那么:

SELECT 
  * 
FROM 
  table
WHERE
    DateTimeOfInsert >= '2016-07-14 00:00:00' 
  AND 
    DateTimeOfInsert <= '2016-07-15 23:59:59'

或仅将其用于第二个条件

DateTimeOfInsert <= '20160716'

暗示2016-07-14 00:00:00至2016-07-16 00:00:00

答案 1 :(得分:0)

为什么不使用BETWEEN statement

您的查询应如下所示:

SELECT * 
FROM table
WHERE DateTimeOfInsert >= '2016-07-14 00:00:00' 
AND DateTimeOfInsert < '2016-07-16  00:00:00'