在sql中将24小时分成小时范围

时间:2014-07-31 10:37:26

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

我希望将24小时分成小时范围,如

0000-0001,0001-0002 ....

并将其保存在表格中

 Time Range
 0000-0001
 0001-0002

这就是我试过的

RIGHT ('00' + CONVERT(VARCHAR, DATEPART(hh,time)), 2) + '-' + RIGHT('00' + CONVERT(VARCHAR, DATEPART(hh,time) + 1), 2)

1 个答案:

答案 0 :(得分:0)

小时的递归CTE,以及输出的一些简单的字符串操作:

with hrs (time)
AS
(
    SELECT 0
    UNION ALL
    SELECT time+1
    FROM hrs WHERE time<23
)
select time,
RIGHT ('0000' + CONVERT(VARCHAR, time), 4) + '-' + RIGHT('0000' + CONVERT(VARCHAR, time + 1), 4)
from hrs

输出:

0   0000-0001
1   0001-0002
2   0002-0003
3   0003-0004
4   0004-0005
5   0005-0006
6   0006-0007
7   0007-0008
8   0008-0009
9   0009-0010
10  0010-0011
11  0011-0012
12  0012-0013
13  0013-0014
14  0014-0015
15  0015-0016
16  0016-0017
17  0017-0018
18  0018-0019
19  0019-0020
20  0020-0021
21  0021-0022
22  0022-0023
23  0023-0024