我在 SQL Server 中有这个查询:
SELECT
[Order Date], SUM([Profit])
FROM
[sample].[dbo].[superstore]
WHERE
[Order Date] BETWEEN '2012-06-21 00:00:00.000' AND '2012-09-21 23:59:59.999'
GROUP BY
[Order Date]
ORDER BY
[Order Date];
此查询的结果具有 [Order Date] 的记录 2012-06-21 00:00:00.000
但是有了这个查询
SELECT
[Order Date], SUM([Profit])
FROM
[sample].[dbo].[superstore]
WHERE
[Order Date] BETWEEN '2012-06-21 00:00:00.000' AND '2012-09-21 23:59:59.998'
GROUP BY
[Order Date]
ORDER BY
[Order Date];
我没有得到这个记录。
SQL Server 是否有此处缺少的任何属性?
提示:类型[Order Date]
是datetime
。
SQL Server 日期/时间列的精度因确切类型而异。首先,“0.999”被四舍五入。
最安全的方法是避开between
时间组件,例如:
SELECT [Order Date] , sum([Profit])
FROM [sample].[dbo].[superstore]
WHERE [Order Date] >= '2012-06-21' AND
[Order Date] < '2012-09-22'
GROUP BY [Order Date]
ORDER BY [Order Date];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句