我有这个疑问在SQL Server: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];
结果有纪录的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中的DATETIME'具有3.33ms的精度,导致这些奇怪的四舍五入效应。建议使用SQL Server 2008中引入的'DATETIME2(n)','DATE'和'TIME' - 这些类型没有这种奇怪的准确性和舍入问题 –