segunda-feira, 3 de novembro de 2014

Subtração de datas em SQL

Caros leitores, a tutorial hoje será rápído pois, o assunto também não é muito extenso. É possível fazer subtração de datas por SQL ? Será que isso sempre tem que ser feito via linguagem de programação ? É difícil ?

Bem, vamos responder as perguntas na mesma ordem que foram feitas. Para a primeira pergunta, a resposta é: sim. Para a segunda pergunta, a resposta é: nem sempre. A resposta é "nem sempre" pois isso depende da vontade do desenvolvedor e do cenário em que ele está. Para a terceira pergunta, a resposta é: não, muito fácil.

Para subtrair as datas, usaremos a função do MySQL chamado DATEDIFF(data1, data2), onde os parâmetros são as datas que usaremos na nossa operação.

Exemplo:

Vamos subtrair 12/07/2014 de 13/09/2011.

 SELECT DATEDIFF('2014-07-12','2011-09-13') AS DATE_DIFF;  



O resultado esperado deve ser algo parecido com isto:


É importante notar algumas coisas:

  • Os parâmetros da função DATEDIFF devem ser datas válidas ou expressões date/time.
  • Caso seja usada expressões date/time, somente a parte referente à data será usada no cálculo.
Esta função é muito simples de usar. O uso dela quem define é você.

Sugestões ? Elogios ? Críticas ? Deixe nos comentários. Espero ter ajudado você que está lendo este post. Deixo abaixo o link que usei como referência.

4 comentários:

Daniel Pinna disse...

A diferença retornada é em que? Dias, Horas, minutos, segundos, milisegundos?

Abs

Preciso estudar sempre disse...

Obrigado pela dúvida Daniel Pinna. A diferença é retornada em dias.

abs

Daniel Pinna disse...

Gostaria de sugerir assuntos para os seus próximos post's. Que tal escrever sobre qualidade de software? Acho um assunto muito interessante, você poderia falar sobre ferramentas para análise de código como: PMD, CheckStyle, FindBugs. Escrever sobre teste de software, técnicas de testes, padrões de teste, etc.

Abs

Preciso estudar sempre disse...

Mais uma vez muito obrigado pela forte contribuição Daniel Pinna. Sua sugestão é ótima. Estudarei os assuntos e farei os posts. Sempre que quiser sugerir assuntos, fique à vontade.