0
我需要一天的时间字符串值
“23:59:59”的工作,但会导致延迟
“24:00:00”是行不通的字符串值:错误将数据类型varchar转换为datetime。
“1.00:00:00”不工作:将数据类型varchar转换为datetime时出错。
这里是我的代码:
PROCEDURE [dbo].[Procedure1]
@Start datetime,
@Finish datetime,
@TimeRange datetime
AS
BEGIN
SET NOCOUNT ON;
declare @TimeRanges as TABLE (SessionStart datetime, SessionEnd datetime);
with TimeRanges as (
select @Start as StartTime, @Start + @TimeRange as EndTime
union all
select StartTime + @TimeRange, EndTime + @TimeRange
from TimeRanges
where EndTime < @Finish)
select StartTime, EndTime, Count(Test.ScenarioID) as TotalPeaks
from TimeRanges as TR left outer join
dbo.Test as Test on TR.StartTime <= Test.SessionStartTime and Test.SessionCloseTime < TR.EndTime
group by TR.StartTime, TR.EndTime
END
你为什么不使用DATEADD添加TIMERANGE? – Chris
我将时间范围划分为特定时间,例如@TimeRange = 00:05:00.000,然后代码将其分成5分钟,并且工作正常,但是当我想要每日报告时,我需要使用“24:00:00.000”或类似“1.00:00:00.000”这意味着1天 – cihata87