我有一个查询:
SELECT *
FROM [PivotedData15]
where ReadingDate BETWEEN '2019-02-11 00:01:00' AND '2019-02-12 00:00:00'
and Serial='2219'
它将带回明天的第12个值,而不是第11个和第12个之间的值。
在阅读结束时,我必须在第二天的11日午夜(在午夜,因为这是当天的有效阅读)。
我想理解为什么,此查询带回明天的值,这引出了使用between
或> <
等的意义所在的问题。
之间的语句中的所有日期是否必须都在同一天? 是因为最后的数据集中有明天的值,它是否带回明天的值?
我已经在下拉框中添加了一个文件,其输出名为Data。我无法使SQL Fiddle工作。
答案 0 :(得分:5)
assertFalse( SampleEnum.A.getRange().anyMatch( i -> i == 0) );
assertTrue( SampleEnum.A.getRange().anyMatch( i -> i == 1) );
assertFalse( SampleEnum.A.getRange().anyMatch( i -> i == 2) );
assertFalse( SampleEnum.C.getRange().anyMatch( i -> i == 2) );
assertTrue( SampleEnum.C.getRange().anyMatch( i -> i == 3) );
assertFalse( SampleEnum.C.getRange().anyMatch( i -> i == 4) );
assertFalse( SampleEnum.E.getRange().anyMatch( i -> i == 4) );
assertTrue( SampleEnum.E.getRange().anyMatch( i -> i == 5) );
assertTrue( SampleEnum.E.getRange().anyMatch( i -> i == 100) );
assertFalse( SampleEnum.E.getRange().anyMatch( i -> i == 101) );
包含在内。想必您想要:
BETWEEN
根据您的描述,我不清楚这些比较是否正是您所需要的(例如,您要SELECT *
FROM [PivotedData15]
WHERE ReadingDate >= '2019-02-11' AND
ReadingDate < '2019-02-12' AND
Serial = '2219';
/ >
吗?)。但是,与两个端点进行单独比较是可行的方法。
强烈建议您不要将<=
与日期/时间值一起使用。亚伦·伯特兰德(Aaron Bertrand)在What do BETWEEN and the devil have in common?主题上有一个很好的博客。