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

Problema ... verificação de data e ano bissexto.


Gariglio

Pergunta

Bom dia pessoal ...

pessoal .. seguinte ... tenho a seguinte query

SELECT COUNT(*) AS verguia

FROM parametro, aut_guia

WHERE aut_guia.gui_cd =" + codGuia

AND parametro.par_cd = 1

AND (CURRENT_DATE() - aut_guia.gui_dtlibsenha) <= parametro.par_diasexpsenha

Crie ela para verificar em qtos dias uma senha sera expirada ... porem tive um problema agora em fevereiro

Exemplo:

Uma senha gerada dia 1° de março e executada dia 4 de março ... ele valida ... pois indica que a mesma foi gerada dia a 3 dias atras.

Até ai tudo bem ... sem problemas.

Porem ... caso eu crie uma senha no dia 28 de fevereiro e venha executar vamos supor dia 5 de março ... a mesma indica que foi gerada a 78 dias atras.

alguém sabe me dizer o porque isso ocorre?

Teria algo haver com o ano bissexto?

alguém sabe como corrigir????

Desde já agradeço a atenção .

Gariglio.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, Gariglio!

Experimente modificar sua query conforme abaixo:

SELECT COUNT(*) AS verguia 
FROM parametro, aut_guia  
WHERE aut_guia.gui_cd =" + codGuia AND parametro.par_cd = 1 AND aut_guia.gui_dtlibsenha >= DATE_SUB(CURRENT_DATE(), parametro.par_diasexpsenha)

Esta modificação tem dois propósitos:

1 - Evitar que sua pesquisa execute table scan (os cálculos devem ficar a direita do sinal e não utilizar, um campo para tal)

2 - Usar a função correta de subtração de datas em MySQL (ver manual do MySQL versão 4.1, tradução em português, capítulo 6)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...