这个可以推前一个小时dateadd(hh,-1,当前时间)

解决方案 »

  1.   


    DECLARE @dt DATETIME,@a INT,@b INT,@start DATETIME,@end DATETIME 
    SELECT  @dt=GETDATE()SELECT @a=CASE WHEN DATEPART(mi,@dt)/5=0 THEN DATEPART(mi,@dt) ELSE DATEPART(mi,@dt)/5*5 END
           --@b=CASE WHEN DATEPART(mi,DATEADD(hh,-1,@dt))/5=0 THEN DATEPART(mi,DATEADD(hh,-1,@dt)) ELSE DATEPART(mi,DATEADD(hh,-1,@dt))/5*5 END 
    SELECT @end=LTRIM(DATEPART(hh,@dt))+':'+LTRIM(@a)+':00.000'SELECT @start=LTRIM(DATEPART(hh,DATEADD(hh,-1,@dt)))+':'+LTRIM(@a)SELECT
    distinct 
    convert(varchar(10),dateadd(mi,number/5*5+1,@start),108)+'~'+
    convert(varchar(10),dateadd(mi,(number/5+1)*5,@start),108) 
    from master..spt_values where type='p' and number<datediff(mi,@start,@end)/*---------------------
    16:11:00~16:15:00
    16:16:00~16:20:00
    16:21:00~16:25:00
    16:26:00~16:30:00
    16:31:00~16:35:00
    16:36:00~16:40:00
    16:41:00~16:45:00
    16:46:00~16:50:00
    16:51:00~16:55:00
    16:56:00~17:00:00
    17:01:00~17:05:00
    17:06:00~17:10:00(12 行受影响)*/