Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
O script a seguir abre um cursor para um tabela onde estão cadastrados data_inicio e data_fim. Calcula a diferença entre a data inicial e final e depois escreve por extenso.
create table #tab (datai datetime, dataf datetime)insert into #tab (datai, dataf) values ('2003/07/05 10:00','2003/08/07 15:30')insert into #tab (datai, dataf) values ('2003/07/05 10:00','2003/09/07 15:30')insert into #tab (datai, dataf) values ('2003/07/05 10:00','2003/09/07 16:00')insert into #tab (datai, dataf) values ('2003/07/05 10:00','2004/09/07 16:00')declare @saida varchar(2000), @datai datetime, @dataf datetimedeclare @mes int, @dia int, @diat int, @hora int, @min intDECLARE mycursor CURSOR FOR select from #tabOPEN mycursorFETCH NEXT FROM mycursorINTO @datai, @datafWHILE @@FETCH_STATUS = 0BEGIN set @saida = '' set @mes = datediff(mm,@datai,@dataf) set @diat = datediff(d,@datai,@dataf) set @hora = datediff(hh,@datai,@dataf) set @min = datediff(mi,@datai,@dataf) Set @min = @min % 60 set @dia = @diat - (@mes 30) - 1 set @hora = (@hora - (@diat 24)) print str(@mes,2) + ' mes(es) ' + str(@dia,2) + ' dia(s) ' + str(@hora,2) + ' hora(s) ' + str( @min,2) + ' minuto(s)' FETCH NEXT FROM mycursor INTO @datai, @datafENDCLOSE mycursorDEALLOCATE mycursorGO--select from #tab where datai like '%2003%'drop table #tab
Fonte/Autor/linkAUTOR: o script acima foi adaptado por mim respondendo um post do forum (que não me recordo o link). Caso alguém seja o autor favor postar o link para que os créditos possam ser atribuido.
Dúvidas, criticas, contribuições, correções e adições serão bem vindas.