Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131

Deprecated: A função WP_Dependencies->add_data() foi chamada com um argumento que está obsoleto desde a versão 6.9.0! Os comentários condicionais do IE são ignorados por todos os navegadores compatíveis. in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131
Como calcular a idade no MySQL

Como calcular a idade no MySQL

A necessidade de cálculo com datas em programação é algo muito comum e recorrente, abordarei este tópico como é possível calcular a idade através do MySQL.

Antes, reforço recomendação de não armazenar no banco de dados registros calculados, como é o caso da idade, afinal isto muda e você pode obter o resultado rapidamente, como veremos.

Para calcularmos a idade no MySQL vamos utilizar a função timestampdiff, através dela é possível se obter resultados em diversos formatos, dentre eles:

  • Anos
  • Dias
  • Semanas
  • Meses
  • Trimestres
  • Hora
  • Minuto
  • Segundo
  • Microsegundo.

Um ganho com o uso da função é que não é necessário se preocupar com os anos bissextos, pois ela calcula com precisão a diferença.

A função possui os seguintes parâmetros de entrada:

  • Tipo
    • O primeiro parâmetro, aqui você irá especificar qual informação você quer que a função retorne, como apontei acima são vários os tipos, mas para este post, utilizaremos o valor YEAR.
  • Data 1
    • Aqui você irá passar a data de nascimento da pessoa.
  • Data 2
    • Aqui você poderá colocar a data a ser comparada, para saber qual a idade naquela ocasião, você também pode utilizar-se a função now().

Os parâmetros fornecidos não necessitam ser do mesmo formto, ou seja, posso passar uma data simples, apenas com AAAA-MM-DD, ou uma data completa, com hora, minuto e segundo (AAAA-MM-DD HH:MM:SS), o que vai acontecer é, o MySQL irá entender que a data pura terá o horário fixado em 00:00.

Vamos para a prática, calculando a idade no MySQL:

Select TIMESTAMPDIFF(YEAR, '1987-03-01 00:00',NOW());

O resultado quando executo esse comando hoje (01/2021) foi:

TIMESTAMPDIFF(year, '1987-03-01 00:00',now())
---------------------------------------------------------------------
33

Como citei acima, poderia ter passado a data simples, que o resultado seria o mesmo.

Agora digamos que eu queria saber com quantos anos eu terei em 2050, o select fica:

Select TIMESTAMPDIFF(YEAR, '1987-03-01 00:00','2050-03-01');
TIMESTAMPDIFF(year, '1987-03-01 00:00','2050-03-01'))
---------------------------------------------------------------------
63

Podemos fazer uso da função TIMESTAMPDIFF em diversos momentos, como se diz, o céu é o limite.

Veja também como é possível identificar os aniversariantes do mês em MySQL.

 

1 comentário em “Como calcular a idade no MySQL”

Deixe um comentário