Usuário com melhor resposta
Dias uteis, final de semana e feriados

Pergunta
-
Pessoal preciso de uma ajuda:
O Sistema interno ao preencher os dados e salvar, calcula a previsão de entrega da mercadoria em 10 dias corridos, porém se cair em um sábado, domingo ou feriado, deveria salvar a data no próximo dia útil.
Gostaria de saber se existe a possibilidade de fazer um update nos títulos que já foram gravados, se caiu em um sábado, domingo ou feriado, jogar para o próximo dia útil.
Respostas
-
Tente essa consulta:
select CONVERT(char(10), tblwrititulos.DtPrevisaoEntrega, 103) AS Data_Entrega FROM dbo.tblWRITitulos WHERE (DATEPART(dw, DtPrevisaoEntrega) IN (1, 7) OR EXISTS (SELECT DATA FROM FERIADOS WHERE DATA = DtPrevisaoEntrega)) and tblwrititulos.FK_tblWRIRecepcaoRecepcao = 1021547
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 17 de maio de 2017 17:26
- Marcado como Resposta Tiago_Aurelio quinta-feira, 18 de maio de 2017 11:24
Todas as Respostas
-
Bom dia,
Os finais de semana você consegue pegar utilizando a função DATEPART(dw,<sua_data>), porém os feriados acredito que você teria que tê-los cadastrados em alguma tabela para consulta.
Abraço!
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
-
Desculpe,
Tentei fazer algo, mas nao consegui
select CONVERT(char(10), tblwrititulos.DtPrevisaoEntrega, 103) AS Data_Entrega
FROM dbo.tblWRITitulos
WHERE (DtPrevisaoEntrega = CONVERT(CHAR(10), GETDATE() - 1, 103)) AND (DATEPART(dw, GETDATE()) NOT IN (1, 7))
and tblwrititulos.FK_tblWRIRecepcaoRecepcao = 1021547
-- O Numero 1021547 é um protocolo de entrada, que ja tem a data de previsão para o dia 20/05/2017, ou seja um sabado, eu preciso fazer um update que jogue para o proximo dia util.
A tabela de feriados ja existe no banco
Tambem tem uma fn de dias uteis ja no banco
- Editado Tiago_Aurelio terça-feira, 16 de maio de 2017 13:54 acres
-
Tente essa consulta:
select CONVERT(char(10), tblwrititulos.DtPrevisaoEntrega, 103) AS Data_Entrega FROM dbo.tblWRITitulos WHERE (DATEPART(dw, DtPrevisaoEntrega) IN (1, 7) OR EXISTS (SELECT DATA FROM FERIADOS WHERE DATA = DtPrevisaoEntrega)) and tblwrititulos.FK_tblWRIRecepcaoRecepcao = 1021547
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 17 de maio de 2017 17:26
- Marcado como Resposta Tiago_Aurelio quinta-feira, 18 de maio de 2017 11:24