经常有项目中会用到查询时间段早上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)
本文介绍了一种使用SQL根据当前时间动态获取从昨天9点至今天7点或从今天9点至明天7点的方法,并提供了相应的SQL查询语句来筛选这段时间内的订单记录。
1481

被折叠的 条评论
为什么被折叠?



