sql - T-SQL : convert(datetime) to include/exclude certain hours

标签 sql sql-server-2008 t-sql date datetime

使用日期范围来选择值,但还需要使用小时范围来确定是否应选择记录。日期范围和时间范围不一定相关。

 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/

相关文章:

php - 转换 mysql_result 困难

SQL:带有新手语法错误的子句

sql - 对带有 Case 语句的Where进行矛盾条件检查

SQL 合并行并创建列

sql - DB2 中的 ROW_NUMBER()

sql - 按条件 Access 跨行分组

c# - NHibernate(Fluent NHibernate)中的多对多关系在数据库中创建意外记录

sql-server-2005 - ORDER BY 5 DESC 是什么意思?

c# - 如何在安装时创建 SQL Server 数据库

t-sql - 有效期 - SQL VIEW