none
Dias uteis, final de semana e feriados RRS feed

  • 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.

    terça-feira, 16 de maio de 2017 13:07

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

    terça-feira, 16 de maio de 2017 16:35

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

    terça-feira, 16 de maio de 2017 13:33
  • 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
    terça-feira, 16 de maio de 2017 13:37
  • 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

    terça-feira, 16 de maio de 2017 16:35