Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jothaz

[Resolvido] Escrever datas por extenso SQL

Recommended Posts

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/link

AUTOR: 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.