Ir para conteúdo
Fórum Script Brasil
  • 0

Dia da Semana


F4b1nh0

Pergunta

beleza galera?

Estou tentando criar um script que mostre a diferença de dias entre a data atual e uma data que trago do banco MySql.

Porém que ele não desconsidere se for Sabado ou Domingo.

Existe alguma outra forma de fazer isso?

Segue meu código até o momento:

SELECT codigo, Data_Criacao_TAREFA,
         CASE (DATE_FORMAT(DATE_ADD(STR_TO_DATE( Data_Criacao_TAREFA,  '%d/%m/%Y' ),INTERVAL 2 DAY),'%w'))
           WHEN '6' THEN 
                        CASE WHEN (DATE_ADD(STR_TO_DATE( Data_Criacao_TAREFA,  '%d/%m/%Y' ),INTERVAL 4 DAY) = DATE_FORMAT(NOW(),'%Y/%m/%d')) 
                                THEN 'SLA VENCE HOJE'
           ELSE 
          (DATE_ADD(STR_TO_DATE( Data_Criacao_TAREFA,  '%d/%m/%Y' ),INTERVAL 4 DAY))
            END 
   
 WHEN '0' THEN 
              CASE WHEN (DATE_ADD(STR_TO_DATE( Data_Criacao_TAREFA,  '%d/%m/%Y' ),INTERVAL 4 DAY) = DATE_FORMAT(NOW(),'%Y/%m/%d')) 
                   THEN 'SLA VENCE HOJE'
                 ELSE 
              CASE WHEN (DATE_ADD(STR_TO_DATE( Data_Criacao_TAREFA,  '%d/%m/%Y' ),INTERVAL 4 DAY) < DATE_FORMAT(NOW(),'%Y/%m/%d'))
                   THEN 'SLA FORA DO PRAZO'
                   ELSE 'SLA DENTRO DO PRAZO'
                   END
                   END
               ELSE 
                 CASE WHEN (DATE_ADD(STR_TO_DATE( Data_Criacao_TAREFA,  '%d/%m/%Y' ),INTERVAL 2 DAY) < DATE_FORMAT(NOW(),'%Y/%m/%d'))
                      THEN 'SLA FORA DO PRAZO'
                  ELSE 'SLA DENTRO DO PRAZO'
                  END
END VENCINENTO
FROM divisao_prd_novos

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Resolvi mudando a lógica...

 

Tratando via PHP ao invés do MySql. Caso alguém precise, segue o script:

//pega a data do banco e a data atual
$data_inicial = $row["Data_Criacao_TAREFA"];
$data_final =  str_replace("-","/", date("Y/m/d"));

//converte para formato padrão de data
  $date2 = strtotime($data_inicial);
  $date3 = strtotime($data_final);

//pega a numeração de 0 a 6 do dia da semana 
	$date4 = date("w", $date2);	
    $date5 = date("w", $date3); 
 if ( $date4 == 6) { 
		
	$date2 = date("z", $date2);	
    $date3 = date("z", $date3);
	
	$date2 = $date2 + 2;
 $resultado = $date3 - $date2;}
 
 elseif ( $date4 == 0 ) { 
 $date2 = date("z", $date2);	
    $date3 = date("z", $date3);
 $date2 = $date2 + 1;
 $resultado = $date3 - $date2;} 


 else {
	 $date2 = date("z", $date2);	
    $date3 = date("z", $date3);

	 $resultado = $date3 - $date2;
	
 }

//se o dia inicial for sexta e a data final for segunda, acrescenta 2 dias
if ( $date4 == 5 || $date5 == 1 )	{ 
									  $date2 = $date2 + 2;
									  
 $resultado = $date3 - $date2; }

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...