我正在尝试构建一个基于DateTime列SyncDate进行选择的查询。
作为一些背景知识,我查询的表每天都会在每天的同一时间进行数千次导入。我想要找到在一天中的“常规”时间没有导入的条目。
因此,我想查询DateTime列中的时间介于两个时间之间的位置:假设在任何日/月/年期间的14:00-14:30 (2-230)。
SELECT * FROM MyTable
WHERE DatePart(SyncDate, ..?) BETWEEN (14:00..?) and (14:30..?)DatePart函数似乎就是我所需要的,但是我不知道如何将它应用于这种情况。感谢您的帮助,哦,伟大的查询者。
编辑:我弄错了,我正在运行SQL-Server-2005作为我的后端。抱歉的!
发布于 2012-04-06 04:52:21
由于您使用的是SQL Server 2008,因此可以使用新的TIME数据类型:
SELECT * FROM MyTable
WHERE CAST(SyncDate AS TIME) BETWEEN '14:00' and '14:30'如果你的后台还不是2008 :-)那么你需要这样的东西:
SELECT * FROM MyTable
WHERE DATEPART(HOUR, SyncDate) = 14 AND DATEPART(MINUTE, SyncDate) BETWEEN 0 AND 30去查14:00-14:30小时。
发布于 2012-04-06 04:56:34
这个怎么样..。
select * from MyTable where
cast(cast(datepart(HH,SyncDate) as char(2)) + cast(datepart(HH,SyncDate) as char(2)) as int) between 1400 and 1430https://stackoverflow.com/questions/10035769
复制相似问题