现在的位置: 首页 > 综合 > 正文

SQL中获取指定两个日期时间点或者时间段内所有记录语句

2013年06月10日 ⁄ 综合 ⁄ 共 1725字 ⁄ 字号 评论关闭

经常有项目中会用到查询时间段早上9点到第二天7点之间的所有记录,并根据当前时间来统计分析所有当日当班时间段内的所有定单总数(对比现在的时间和固定两个时间点中间的所有记录)可以如下去操作:

Declare @TranslateStartTime nvarchar(20)
Declare @TranslateEndTime nvarchar(20)

if DatePart(hour,getdate())>9
begin
--早上9点以后
set @TranslateStartTime=convert(nvarchar(4),DatePart(yyyy,getdate()),4)
set @TranslateStartTime=@TranslateStartTime + '-' +convert(nvarchar(4),DatePart(m,getdate()),4)
set @TranslateStartTime=@TranslateStartTime + '-' +convert(nvarchar(4),DatePart(day,getdate()),4)
set @TranslateStartTime=@TranslateStartTime + ' ' +'9:00:00'

set @TranslateEndTime=convert(nvarchar(4),DatePart(yyyy,dateadd(day,1,getdate())),4)
set @TranslateEndTime=@TranslateEndTime + '-' +convert(nvarchar(4),DatePart(m,dateadd(day,1,getdate())),4)
set @TranslateEndTime=@TranslateEndTime + '-' +convert(nvarchar(4),DatePart(day,dateadd(day,1,getdate())),4)
set @TranslateEndTime=@TranslateEndTime + ' ' +'7:00:00'

end

else
begin
--早上9点之前
set @TranslateStartTime=convert(nvarchar(4),DatePart(yyyy,dateadd(day,-1,getdate())),4)
set @TranslateStartTime=@TranslateStartTime + '-' +convert(nvarchar(4),DatePart(m,dateadd(day,-1,getdate())),4)
set @TranslateStartTime=@TranslateStartTime + '-' +convert(nvarchar(4),DatePart(day,dateadd(day,-1,getdate())),4)
set @TranslateStartTime=@TranslateStartTime + ' ' +'9:00:00'

set @TranslateEndTime=convert(nvarchar(4),DatePart(yyyy,getdate()),4)
set @TranslateEndTime=@TranslateEndTime + '-' +convert(nvarchar(4),DatePart(m,getdate()),4)
set @TranslateEndTime=@TranslateEndTime + '-' +convert(nvarchar(4),DatePart(day,getdate()),4)
set @TranslateEndTime=@TranslateEndTime + ' ' +'7:00:00'

end

select @TranslateStartTime

select @TranslateEndTime

SQL查询语句所有当前时间段内的记录:
Select * from OrderList Where  DateDiff(mi,@TranslateStartTime,translatetime)>=0 and DateDiff(mi,@TranslateEndTime,translatetime)<=0)

抱歉!评论已关闭.