sql - 基于小时和时间的自定义范围字段
解决方案
您不需要Hour
此结果的列。Time
价值观就足够了。
样本数据
create table data
(
TimeValue time(0)
);
insert into data (TimeValue) values
('12:00:00 AM'),
('12:15:00 AM'),
('12:30:00 AM'),
('12:45:00 AM'),
( '1:00:00 AM'),
( '1:15:00 AM'),
( '1:30:00 AM'),
( '1:45:00 AM'),
( '2:00:00 AM'),
( '2:15:00 AM'),
( '2:30:00 AM'),
( '2:45:00 AM'),
( '3:00:00 AM'),
( '3:15:00 AM'),
( '3:30:00 AM'),
( '3:45:00 AM'),
( '4:00:00 AM'),
( '4:15:00 AM'),
( '4:30:00 AM');
解决方案
select 'Hour ' + convert(nvarchar(2), datepart(hour, d.TimeValue)) as [Hour],
convert(nvarchar(11), d.TimeValue, 22) as [Time],
'Hour ' +
convert(nvarchar(2), case
when datepart(hour, d.TimeValue)-1 < 0 then 0
else datepart(hour, d.TimeValue)-1
end) + '-' +
convert(nvarchar(2), datepart(hour, d.TimeValue)) as [Custom]
from data d;
结果
Hour Time Custom
------ ----------- --------
Hour 0 12:00:00 AM Hour 0-0
Hour 0 12:15:00 AM Hour 0-0
Hour 0 12:30:00 AM Hour 0-0
Hour 0 12:45:00 AM Hour 0-0
Hour 1 1:00:00 AM Hour 0-1
Hour 1 1:15:00 AM Hour 0-1
Hour 1 1:30:00 AM Hour 0-1
Hour 1 1:45:00 AM Hour 0-1
Hour 2 2:00:00 AM Hour 1-2
Hour 2 2:15:00 AM Hour 1-2
Hour 2 2:30:00 AM Hour 1-2
Hour 2 2:45:00 AM Hour 1-2
Hour 3 3:00:00 AM Hour 2-3
Hour 3 3:15:00 AM Hour 2-3
Hour 3 3:30:00 AM Hour 2-3
Hour 3 3:45:00 AM Hour 2-3
Hour 4 4:00:00 AM Hour 3-4
Hour 4 4:15:00 AM Hour 3-4
Hour 4 4:30:00 AM Hour 3-4
小提琴以查看实际情况。
推荐阅读
- java - FIFO管道/缓冲区将可变长度的数据转换为固定大小的长度
- asp.net - 我已经使用外键通过数据库从下拉列表中提取 ImagelocationID 的值,并且在创建时出现此错误
- javascript - JQuery:为未知数量(动态)字段创建更改事件
- node.js - 通过 UI 设置 Gitlab CI/CD 环境变量
- angular - 如何使用 FontAwesome 为我的项目添加更多图标?
- c# - ASP.NET 核心 3.1 | 如何使用服务集合进行单元测试并使用 NullLogger 作为 ILogger 实现
- ffmpeg - FFMPEG 仅在 4k 视频并保持纵横比时降级
- javascript - Javascript 对象数组辅助
- javascript - 如何禁用单击图像?
- python - 依赖下拉错误“元组”对象没有属性“get”