Não sei se é útil, porém talvez valha pela curiosidade.
O que foi demonstrado acima pode ser executado através de uma função (function), porém acreditem algumas versões de alguns bancos de dados proprietárias não disponibiliza uso de funções.
E lembrem-se estes exemplos não passam de elocubrações.
Fonte/Autor/link
AUTOR: "Jothaz"
Dúvidas, criticas, contribuições, correções e adições serão bem vindas.
Pergunta
jothaz
O fragmento a seguir mostra uma forma de como através de um CURSOR escrever por extenso um intervalo entre datas.
Script:
DECLARE @TAB TABLE (DATAI DATETIME, DATAF DATETIME, INTERVALO_DATA_EXTENSO VARCHAR(100)) 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 DATETIME DECLARE @MES INT, @DIA INT, @DIAT INT, @HORA INT, @MIN INT, @AUX VARCHAR(100) DECLARE MYCURSOR CURSOR FOR SELECT * FROM @TAB OPEN MYCURSOR FETCH NEXT FROM MYCURSOR INTO @DATAI, @DATAF, @AUX WHILE @@FETCH_STATUS = 0 BEGIN 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)) SET @AUX = STR(@MES,2) + ' MES(ES) ' + STR(@DIA,2) + ' DIA(S) ' + STR(@HORA,2) + ' HORA(S) ' + STR( @MIN,2) + ' MINUTO(S)' UPDATE @TAB SET INTERVALO_DATA_EXTENSO = @AUX --PRINT @AUX FETCH NEXT FROM MYCURSOR INTO @DATAI, @DATAF, @AUX END CLOSE MYCURSOR DEALLOCATE MYCURSOR SELECT INTERVALO_DATA_EXTENSO, DATAI, DATAF FROM @TAB GOResultado:Considerações finais:
Não sei se é útil, porém talvez valha pela curiosidade.
O que foi demonstrado acima pode ser executado através de uma função (function), porém acreditem algumas versões de alguns bancos de dados proprietárias não disponibiliza uso de funções.
E lembrem-se estes exemplos não passam de elocubrações.
Fonte/Autor/link
AUTOR: "Jothaz"
Dúvidas, criticas, contribuições, correções e adições serão bem vindas.
Editado por jothazLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.