将小时间隔显示为12:00 - 13:00

时间:2017-07-19 12:12:49

标签: sql sql-server date

我有一个显示时间戳的列,如下所示:

  • 2017-07-17 09:14:49.000
  • 2017-07-17 10:07:15.000
  • 2017-07-17 10:30:39.000
  • 2017-07-17 10:33:40.000
  • 2017-07-17 10:49:06.000
  • 2017-07-17 11:16:48000

我需要编写一个sql查询,它将按小时显示每小时的间隔:

  • 09:00 - 10:00
  • 10:00 - 11:00

有谁知道如何实现这一目标?目前我没有脚本,因为我不知道从哪里开始。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

类似的东西:

for (var x=1; x<= 10; x++) {
    if ( x % 2 == 0 ) {
        document.write(x);
    }
}

除非我误解了这个问题。如果您希望使用不同的时间跨度填充Select控件,则不要在SQL中执行此操作,而是使用您正在使用的任何编程语言。

答案 1 :(得分:0)

使用DATEPART功能获取日期时间的HOUR部分

DATEPART(HOUR, Column1)

从那里开始,只需要字符串格式化即可获得所需的确切文本

SELECT Column1
, RIGHT('00' + CAST(DATEPART(HOUR, Column1) AS NVARCHAR(2)),2) + ':00 - ' 
+ RIGHT('00' + CAST(DATEPART(HOUR, Column1)+1 AS NVARCHAR(2)),2) + ':00' AS Interval
FROM Table1 

SQLFiddleDemo