在SQL Server中基于特定日期间隔从表中获取记录以获取相同日期

时间:2018-09-03 11:20:56

标签: sql sql-server tsql

我有一个表,其中的日期和时间列在一起(说创建日期)。我需要通过单独花费时间来从表中获取记录(因为我在同一日期以不同的间隔检索记录)。

我的问题是在使用存储过程获取记录时如何在表的DateTime字段中单独中断时间部分

进一步举一个例子 我必须从同一张表中获取数据 在指定的日期5次 说

9.00 to 10.00
11.00 to 12.00
....
....
13.00 to 14.00 etc

3 个答案:

答案 0 :(得分:1)

您还可以使用datepart()函数来提取小时:

select datepart(hour, createdat), . . .
from . . .
where datepart(hour, createdat) between 9 and 13
group by datepart(hour, createdat)
order by datepart(hour, createdat);

答案 1 :(得分:0)

您可以从下面的代码的“使用日期”字段中断开时间部分。

select cast(CreatedDate as time) as TimePart
from your_Table_name

答案 2 :(得分:0)

我认为这非常简单,并且可以通过非常优化和节省的方式来完成。

Declare @input datetime='2018-09-04'

declare @starttime varchar(15)='13:00'
declare @endtime varchar(15)='14:00'

declare @StartDate datetime=@input+@starttime

declare @EndDate datetime=@input+@endtime

select * from 
table1 
where createdate>=@StartDate and createdate<=@EndDate