使用日期范围来选择值,但还需要使用小时范围来确定是否应选择记录。日期范围和时间范围不一定相关。
game_time (between 6 am and 6 pm)
已尝试直接在语句和日期部分之间进行操作,但无法获得任何内容来捕获我们需要的内容。
create table gametime(name varchar, start_time datetime, end_time datetime)
insert assorted name, start_times and end_times
期望的结果
name start_time end_time
name1 8:00 AM 10:00 AM
name2 8:00 AM 11:30 AM
name3 4:00 PM 5:30 PM
name4 6:00 PM 9:00 PM
datetime
用于存储,但在演示中不需要。演示中只需要时间。
选定的游戏只能在上午 6:00 到下午 6:00 之间开始。
任何和所有的建议和见解表示赞赏......
使用
LTRIM(RIGHT(CONVERT(VARCHAR(20), start_time, 100), 7))
要获得正确的演示格式,
但是当我尝试使用
LTRIM(RIGHT(CONVERT(VARCHAR(20), start_time, 100), 7)) > 6
我遇到转换错误。
最佳答案
我会使用DATEPART
而不是依赖于转换/比较字符串:
WHERE DATEPART(hour,start_time) BETWEEN 6 AND 18
关于sql - T-SQL : convert(datetime) to include/exclude certain hours,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33221903/