如何在sql server中获取每小时数据(具体分钟)

时间:2018-01-16 11:26:22

标签: sql sql-server

如何在sql server中获取每小时数据(无论是什么日期),我知道可以使用datePart(小时,列名)来实现,但具体来说,我需要特定时间间隔的数据,包括分钟,而不管日期。

场景:'TestTable'包含列 - 数据类型为DBTimestamp(DateTime)

我需要来自'TestTable'的所有记录,其中'DBTimestamp'在3小时35分钟和4小时30分钟之间,无论指定日期如何。

3 个答案:

答案 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)