在sql中将时间转换为小时范围

时间:2014-07-30 09:54:30

标签: sql sql-server sql-server-2008

我想将时间转换为小时范围。我有两个这样的列

date                       time
2008-01-02                 00:05
2008-01-02                 00:15
2008-01-02                 01:10
2008-01-02                 01:15
2008-01-02                 02:15
2008-01-02                 02:25

现在,我怎样才能得到这样的结果

  date                      hour_range
2008-01-02                 00-01
2008-01-02                 00-01
2008-01-02                 01-02
2008-01-02                 01-02
2008-01-02                 02-03
2008-01-02                 02-03

提前致谢

2 个答案:

答案 0 :(得分:3)

可以获得该输出:

SELECT colDate, RIGHT ('00' + CONVERT(VARCHAR, DATEPART(hh, colTime)), 2) + '-' + RIGHT('00' + CONVERT(VARCHAR, DATEPART(hh, colTime) + 1), 2) AS timeRange FROM tblTest

但我建议,在表示层中创建一个像应用程序一样的范围。我不认为这应该在数据库中完成

这是sqlfiddle

答案 1 :(得分:1)

这样的事情应该有效:

 SELECT DATEPART(hour,time) thishour, DATEPART(hour,DATEADD(hh,1,time)) nexthour from record order by datepart(hour,time)