Esr*_*_92 2 sql sql-server time hour
我想生成一个小时到小时的小时列表,间隔为30分钟.
例如,员工在09:00进入工作岗位并在18:00离开,所以我想生成这样的:
Hours
-----
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
Run Code Online (Sandbox Code Playgroud)
我怎样才能生成这个?谢谢.
使用递归CTE,您可以实现此结果.
尝试以下查询 -
DECLARE @timeFrom TIME = '09:00'
DECLARE @timeTo TIME = '18:00'
;with SourceHrs
as
(
select @timeFrom as [Hours]
UNION ALL
SELECT DATEADD(MINUTE, 30, [Hours]) from SourceHrs WHERE [Hours] < @timeTo
)
SELECT CONVERT(VARCHAR(5),Hours,108) FROM SourceHrs
Run Code Online (Sandbox Code Playgroud)
结果
Hours
-------
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |