如何在两个时间间隔内获取数据

时间:2014-03-15 21:09:56

标签: sql sql-server sql-server-2005

这是我的表

T_idx          T_Tag         T_Date  
1              x             2014-03-15 23:58:00.000
2              y             2014-03-15 23:57:00.000
.               .                  .
.
.               .                  .
.
555            xy            2014-03-15 5:10:00.000

从上表中,我希望每天早上5:30到6:30之间看到数据

你能不能请任何人建议我获取数据的查询。

2 个答案:

答案 0 :(得分:0)

您可以在SQL Server 2005中以这种方式执行此操作:

select * from mytable 
where convert(datetime, convert(char(5), T_Date, 108)) >= '5:30'
and convert(datetime, convert(char(5), T_Date, 108)) <= '6:30'

在SQL Server 2008及更高版本中,您只需将其强制转换为time数据类型:

select * from mytable 
where convert(time, T_Date) >= '5:30'
and convert(time, T_Date) <= '6:30'

答案 1 :(得分:0)

试试这个

SET @start_date = DATEADD(minutes,30,DATEADD(hour, 5, DATEDIFF(DAY, 2, GETDATE())))
SET @end_date = DATEADD(hour, -1, @start_date)

SELECT 
    T_idx, T_Tag
FROM 
    YourTable
WHERE
    T_Date BETWEEN @start_date AND @end_date