使用Between之间的SQL查询日期搜索
发布时间:2020-12-12 06:46:31 所属栏目:MsSql教程 来源:网络整理
导读:我刚刚运行此查询 Select * from ProjectData where logtime between '2012-09-25 12:00:00.000' and '2012-09-25 12:59:59.999' order by LogTime 为了找到12小时的所有记录,我们每秒都有记录,所以我期待3600记录,但令我惊讶的是我得到了3601记录,最后的记录
我刚刚运行此查询
Select * from ProjectData where logtime between '2012-09-25 12:00:00.000' and '2012-09-25 12:59:59.999' order by LogTime 为了找到12小时的所有记录,我们每秒都有记录,所以我期待3600记录,但令我惊讶的是我得到了3601记录,最后的记录时间是 2012-09-25 13:00:00.000 知道为什么选择此记录?即使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 输出: logtime --------------------------- 2012-09-25 12:00:00.0000000 2012-09-25 12:59:59.9990000 DATETIME与DATETIME2: SELECT name,[precision] FROM sys.types WHERE name IN ('datetime','datetime2') 输出: name precision ----------- --------- datetime2 27 datetime 23 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |