如何在sql server中获取每小时数据(无论是什么日期),我知道可以使用datePart(小时,列名)来实现,但具体来说,我需要特定时间间隔的数据,包括分钟,而不管日期。
场景:'TestTable'包含列 - 数据类型为DBTimestamp(DateTime)
我需要来自'TestTable'的所有记录,其中'DBTimestamp'在3小时35分钟和4小时30分钟之间,无论指定日期如何。
答案 0 :(得分:2)
你可以使用它。
SELECT * FROM TestTable WHERE CAST(DBTimestamp AS TIME) BETWEEN '03:35' AND '04:30'
答案 1 :(得分:1)
根据我的理解,无论日期部分如何,您都需要在特定时间范围内的记录。所以我提出了以下解决方案:
SELECT * FROM (SELECT Id, CAST(Time AS time) [time]
FROM Table) AS Q1
WHERE Q1.time > CAST('03:35:00' AS time)
AND Q1.time < CAST('12:30:00' AS time)
这是SQL小提琴: http://sqlfiddle.com/#!6/21b313/1
答案 2 :(得分:0)
嗯,我想你可以做一些以下变化:
SELECT *
FROM TABLE
WHERE (DATEPART(HOUR, TIMESTAMP) = 3 AND DATEPART(MINUTE, TIMESTAMP) >= 35) OR
(DATEPART(HOUR, TIMESTAMP) = 4 AND DATEPART(MINUTE, TIMESTAMP) <= 30)