Sum*_*pta 7 sql sql-server sql-server-2012-express
我只是运行此查询
Select *
from ProjectData
where logtime between '2012-09-25 12:00:00.000' and '2012-09-25 12:59:59.999'
order by LogTime
Run Code Online (Sandbox Code Playgroud)
为了找到12小时的所有记录,我们每秒都有记录,所以我期待3600记录,但令我惊讶的是我得到了3601记录,最后的记录时间是
2012-09-25 13:00:00.000
Run Code Online (Sandbox Code Playgroud)
知道为什么选择此记录?即使Between包含给定值,该值也高于条件.我正在使用SQL Server 2012 Express版.
尝试使用DATETIME2数据类型logtime列 -
查询:
DECLARE @temp TABLE (logtime DATETIME2)
INSERT INTO @temp (logtime)
VALUES
('20120925 12:00:00.000'),
('20120925 12:59:59.999'),
('20120925 13:00:00.000')
SELECT *
FROM @temp
WHERE logtime BETWEEN '2012-09-25 12:00:00.000' AND '2012-09-25 12:59:59.999'
ORDER BY logtime
Run Code Online (Sandbox Code Playgroud)
输出:
logtime
---------------------------
2012-09-25 12:00:00.0000000
2012-09-25 12:59:59.9990000
Run Code Online (Sandbox Code Playgroud)
DATETIME与DATETIME2:
SELECT name, [precision]
FROM sys.types
WHERE name IN ('datetime', 'datetime2')
Run Code Online (Sandbox Code Playgroud)
输出:
name precision
----------- ---------
datetime2 27
datetime 23
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11907 次 |
| 最近记录: |