Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.ms-sqlserver    |    Notorious Rube Goldberg contraption    |    19,505 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 17,685 of 19,505    |
|    Bob McClellan to Modern Benoni    |
|    Re: How to determine free time    |
|    06 Nov 09 14:37:26    |
   
   XPost: microsoft.public.sqlserver.programming, microsoft.public.   
   qlserver.server   
   From: bobmcc777@gmail.com   
      
   Here is one way...   
   Create Table MyClasses ( ClassName nvarchar(15), StartTime nvarchar(5),   
   Duration int );   
      
   Insert into MyClasses values ('Physics', '09:00', 40 );   
      
   Insert into MyClasses values ('Math', '11:30', 50 );   
      
   Insert into MyClasses values ('Chemistry', '13:30', 60 );   
      
   Insert into MyClasses values ('Biology', '16:00', 40 );   
      
      
   select ClassName,   
    [From] = StartTime,   
    [To] = left(convert(char,dateadd(n,duration,starttime),108),5),   
    Rn = (select count(mc.ClassName) from MyClasses mc where mc.StartTime <=   
   MyClasses.StartTime)   
   INTO #MC   
   from MyClasses   
      
      
   Select Class = 'FreeTimeSlot',   
    [From],   
    [To],   
    NextClass = (select [From] from #mc MC2 where MC.rn = MC2.rn-1)   
   into #MyClasses   
   From #MC MC   
      
   select *, Duration = rtrim(convert(char,datediff(n,[to],NextClass)/60,2)) +   
   ':' + convert(char,datediff(n,[to],NextClass)%60,2)   
   from #MyClasses   
      
   drop table MyClasses   
   drop table #MC   
   drop table #MyClasses   
      
   hth,   
   ..bob   
      
      
      
      
   "Modern Benoni"
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca