Marcio_Meireles Postado 8 de Abril de 2010 Tópicos Que Criei: 25 Tópicos/Dia: 0.00 Meu Conteúdo: 71 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 605 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 45 Denunciar Compartilhar Postado 8 de Abril de 2010 Bom dia Necessito de uma funcao em SQL Server, para pegar só os dias uteis da semana (ignorar sabado e domingo), é para calculo de juros e desconto. obrigado Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 8 de Abril de 2010 Tópicos Que Criei: 884 Tópicos/Dia: 0.13 Meu Conteúdo: 8.799 Conteúdo/Dia: 1.34 Reputação: 289 Pontos/Conquistas: 106.246 Conteúdo Resolvido: 0 Dias Ganho: 185 Status: Offline Idade: 51 Dispositivo: Linux Denunciar Compartilhar Postado 8 de Abril de 2010 Olá Marcio, Verifique e use essa função de datas do SQL nas suas sentenças: SELECT DATENAME(weekday,'1995-10-30 12:15:32.123') ou SELECT DATENAME(dw,'1995-10-30 12:15:32.123'); Retorno: "Monday" No seu caso, quando retornar Saturday ou Sunday serão dias de fim de semana. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Marcio_Meireles Postado 9 de Abril de 2010 Tópicos Que Criei: 25 Tópicos/Dia: 0.00 Meu Conteúdo: 71 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 605 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 45 Autor Denunciar Compartilhar Postado 9 de Abril de 2010 Valeu, deu certo, obrigado Olá Marcio, Verifique e use essa função de datas do SQL nas suas sentenças: SELECT DATENAME(weekday,'1995-10-30 12:15:32.123') ou SELECT DATENAME(dw,'1995-10-30 12:15:32.123'); Retorno: "Monday" No seu caso, quando retornar Saturday ou Sunday serão dias de fim de semana. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 9 de Abril de 2010 Tópicos Que Criei: 884 Tópicos/Dia: 0.13 Meu Conteúdo: 8.799 Conteúdo/Dia: 1.34 Reputação: 289 Pontos/Conquistas: 106.246 Conteúdo Resolvido: 0 Dias Ganho: 185 Status: Offline Idade: 51 Dispositivo: Linux Denunciar Compartilhar Postado 9 de Abril de 2010 Aviso Sobre MultiModeração para Membros Que bom que resolveu o problema. Agora no fórum existe o esquema de multimoderação onde o próprio usuário que abriu o post pode marcar como resolvido. Dá uma olhada no link abaixo que mostra como fazer. http://www.forumrm.com.br/index.php?showtopic=1555 Agradeceríamos se nos ajudasse já marcando o seu tópico sempre que resolvido. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Marcio_Meireles Postado 15 de Abril de 2010 Tópicos Que Criei: 25 Tópicos/Dia: 0.00 Meu Conteúdo: 71 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 605 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 45 Autor Denunciar Compartilhar Postado 15 de Abril de 2010 Tópico Fechado / Resolvido. O mesmo foi marcado como resolvido por não haver mais nada a resolver, pelo mesmo ter ficado parado por muito tempo sem o membro que o iniciou voltar a participar ou comentar, ou por não ter mais comentários de nenhum outro membro do Fórum. Qualquer coisa, alguma dúvida ou questionamento sobre o assunto, pode postar novamente que analisaremos, ou se preferir, favor entrar em contato com a administração ou moderação, através do link: Administradores e Moderadores que retiraremos o STATUS de RESOLVIDO do seu título. Se preferir, mande um email para admin@forumrm.com.br solicitando. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
zanetti Postado 11 de Abril de 2013 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 7 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 45 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 41 Denunciar Compartilhar Postado 11 de Abril de 2013 (editado) Não sei se entendi bem, porem vou deixar aqui um caso que precisei a um tempo atrás, precisava buscar a diferença entre duas datas sem contar o final de semana, desenvolvi essa função para SQL SERVER : DECLARE @CONT INT , @DATA_INICIAL DATETIME, @DATA_FINAL DATETIME SET @DATA_INICIAL = (SELECT CAST('04-04-2013' AS DATE) ) SET @DATA_FINAL = (SELECT CAST(GETDATE() AS DATE )) SET @CONT = 0 DECLARE @TAB AS TABLE (SEMANA INT, DATA DATETIME, CONT INT ) WHILE @CONT < (SELECT DATEDIFF(DD, @DATA_INICIAL, @DATA_FINAL )) BEGIN INSERT INTO @TAB SELECT DATEPART(DW,(DATEADD(DD, @CONT, @DATA_INICIAL))), DATEADD(DD, @CONT, @DATA_INICIAL), @CONT SET @CONT = @CONT+1 END SELECT COUNT(SEMANA) FROM @TAB WHERE SEMANA NOT IN (1,7) Editado 11 de Abril de 2013 por zanetti Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Gleyson Lira Postado 26 de Junho de 2013 Tópicos Que Criei: 0 Tópicos/Dia: 0 Meu Conteúdo: 6 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 30 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 35 Denunciar Compartilhar Postado 26 de Junho de 2013 Zanetti, Estava procurando algo mais ou menos assim. Vocês conhecem alguma consulta baseada na GCALENDARIO para que possamos considerar seus calendários? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Frederico Postado 27 de Agosto de 2013 Tópicos Que Criei: 11 Tópicos/Dia: 0.00 Meu Conteúdo: 1.140 Conteúdo/Dia: 0.22 Reputação: 60 Pontos/Conquistas: 6.161 Conteúdo Resolvido: 0 Dias Ganho: 33 Status: Offline Idade: 42 Dispositivo: Windows Denunciar Compartilhar Postado 27 de Agosto de 2013 Gleyson, Veja se essa te ajuda. CREATE FUNCTION [dbo].[FCNDIASUTEIS] (@DATAINICIAL DATETIME, @DATAFINAL DATETIME) RETURNS INT AS BEGIN -- CRIA VARIAVEIS DECLARE @FERIADOS INT, @RETORNO INT, @DIASAUX INT, @DATAAUX DATETIME -- SETA PRIMEIRO DIA DA SEMANA EM DOMINGO --SET DATEFIRST 7 -- MONTA CURSOR DECLARE CURSORFERIADO CURSOR FOR SELECT COUNT(*) 'TOTAL' FROM GFERIADO WHERE DIAFERIADO BETWEEN @DATAINICIAL + 1 AND @DATAFINAL AND DATEPART(DW, DIAFERIADO) NOT IN (1, 7) AND CODCALENDARIO = '2' -- ABRE CURSOR OPEN CURSORFERIADO -- PEGA PRIMEIRO FETCH NEXT FROM CURSORFERIADO INTO @FERIADOS -- SETA DIAS ÚTEIS COMO 0 SET @RETORNO = DATEDIFF(DAY, @DATAINICIAL, @DATAFINAL) -- SETA DATA AUXILIAR PARA CÁLCULOS SET @DATAAUX = @DATAFINAL -- CONTABILIZA DIAS ÚTEIS WHILE @DATAINICIAL <= @DATAAUX BEGIN -- SE FOR FINAL DE SEMANA, DESCONSIDERA DO TOTAL IF DATEPART(DW, @DATAAUX) IN (1, 7) BEGIN SET @RETORNO = @RETORNO - 1 END -- SUBTRAI UM DA DATA AUXILIAR SET @DATAAUX = @DATAAUX - 1 END -- CORRIGE CASO DATA INICIAL SEJA UM FDS IF DATEPART(DW, @DATAINICIAL) IN (1, 7) BEGIN SET @RETORNO = @RETORNO + 1 END -- FECHA CURSOR CLOSE CURSORFERIADO DEALLOCATE CURSORFERIADO -- DESCONSIDERA OS FERIADOS SET @RETORNO = @RETORNO - @FERIADOS RETURN(@RETORNO) END Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 29 de Agosto de 2013 Tópicos Que Criei: 884 Tópicos/Dia: 0.13 Meu Conteúdo: 8.799 Conteúdo/Dia: 1.34 Reputação: 289 Pontos/Conquistas: 106.246 Conteúdo Resolvido: 0 Dias Ganho: 185 Status: Offline Idade: 51 Dispositivo: Linux Denunciar Compartilhar Postado 29 de Agosto de 2013 Graaaande Frederico ! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Frederico Postado 29 de Agosto de 2013 Tópicos Que Criei: 11 Tópicos/Dia: 0.00 Meu Conteúdo: 1.140 Conteúdo/Dia: 0.22 Reputação: 60 Pontos/Conquistas: 6.161 Conteúdo Resolvido: 0 Dias Ganho: 33 Status: Offline Idade: 42 Dispositivo: Windows Denunciar Compartilhar Postado 29 de Agosto de 2013 E ai Jair, só passeando ai sim !!!!! bom retorno !!!! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.