我有一个问题:
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个之间的值。
我必须在读数结束时的第二天的第二天午夜(午夜,因为那是当天的有效读数)。
我想理解为什么,这个查询会带来明天的值,这引出了between
或> <
等问题的问题。
中间声明中的所有日期都必须在同一天吗?它是否会带回明天的值,因为最后数据集中有明天的值?
我在下拉框中添加了一个名为Data的输出文件。我不能让SQL Fiddle工作。
BETWEEN
是包容性的。据推测,你想要:
SELECT *
FROM [PivotedData15]
WHERE ReadingDate >= '2019-02-11' AND
ReadingDate < '2019-02-12' AND
Serial = '2219';
根据您的描述,我不清楚比较是否正是您所需要的(例如,您是否想要>
/ <=
?)。但是,与两个终点的个别比较是要走的路。
我强烈建议您不要将BETWEEN
与日期/时间值一起使用。 Aaron Bertrand有一个关于What do BETWEEN and the devil have in common?主题的非常好的博客。