【发布时间】:2016-01-18 05:48:33
【问题描述】:
使用日期范围来选择值,但还需要使用小时范围来确定是否应该选择记录。日期范围和时间范围不一定相关。
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
我收到转换错误。
【问题讨论】:
-
需要更多代码——通常你会使用日期时间——你不使用日期时间吗?
-
请编辑您的问题并提供示例数据和所需结果。目前尚不清楚您真正在寻找什么结果。
-
是的,使用 current_timestamp。 current_timestamp +.5 选择正确的组,但还需要从早上 6 点到下午 6 点排除那些不在时间范围内的组。
-
问题已编辑以包含示例数据和所需结果.. 谢谢!!
标签: sql sql-server-2008 tsql date datetime