O que é datediff em mysql

O que é datediff em mysql
MySQL é um dos bancos de dados mais populares do mundo. Independentemente da indústria, o MySQL é amplamente adotado por seus recursos. É um RDBMS de código aberto (sistema de gerenciamento de banco de dados relacional). Os dados são organizados em tabelas que podem ser relacionadas entre si. Ele incorpora o SQL para executar várias ações de banco de dados.

Neste guia, verificaremos uma dessas funções. Ele demonstrará como usar a função datediff em mysql.

O datediff () em sql

A função datediff está disponível como parte da linguagem de consulta SQL. No MySQL, a função datediff () toma duas datas como entrada, calcula a diferença e retorna o número de datas entre as duas datas.

Veja como a estrutura básica da função se parece.

$ Datediff (expressão_1, expressão_2)

Aqui,

  • expressão_1: o primeiro encontro
  • expressão_2: o segundo encontro

A expressão pode ser de qualquer um dos seguintes formatos.

  • tempo
  • data
  • data hora
  • DateTime2
  • SmallDateTime
  • DateTimeOffset

No SQL padrão, no entanto, o datediff () é um pouco diferente. Ele também suporta um parâmetro adicional para especificar a parte da data para trabalhar.

$ Datediff (date_part, expressão_1, expressão_2)

Aqui,

date_part: descreve em que data parte a função deve calcular. Por padrão, o valor é definido como dias. No entanto, também suporta valores adicionais. Esses valores Date_Part também têm abreviações adequadas.

  • mês ("mm" ou "m")
  • ano ("yy" ou "aaa")
  • trimestre ("qq" ou "q")
  • dia ("dd" ou "d")
  • Semana ("WK" ou "WW"
  • Dayofyear ("Dy" ou "Y")
  • hora ("hh")
  • minuto ("mi" ou "m")
  • segundo ("ss" ou "s")
  • milissegundo ("ms")
  • Microsegundo ("MCs")
  • nanossegundo ("ns")

A função datediff () também vem com uma limitação de intervalo. O valor calculado da diferença de data deve estar dentro da faixa de número inteiro (-2.147.483.647 a 2.147.483.648).

Uso de Datediff ()

Nesta seção, verificaremos várias maneiras de usar a função. Para demonstração, um servidor MySQL é definido com phpmyadmin para facilitar o uso. Confira este guia sobre a configuração de phpmyadmin no Ubuntu.

Uso básico

Na guia SQL, execute a seguinte consulta.

$ SELECT DATDIFF ('2090-10-11', '2020-10-10') como 'resultado';

Como mostra a saída, a diferença entre as datas especificadas é de 25568 dias.

Comparando com uma data anterior

E se a segunda data fosse posterior ao primeiro encontro? Troque os valores e teste -os.

$ SELECT DATDIFF ('2020-10-10', '2090-10-11') como 'resultado';

Como podemos ver, ele ainda mostra 25568 dias. No entanto, o valor é negativo. É uma diferença crucial a ter em mente ao implementar essa função em qualquer script/consulta SQL.

Valores de tempo de dados

A função datediff () também aceita valores de datetime como o parâmetro. Espera-se que os valores de tempo estejam em formato 24 horas.

$ SELECT DATDIFF ('2090-10-11 23:59:59', '2020-10-10 00:00:00') como 'resultado_1';
$ SELECT DATDIFF ('2090-10-11 00:00:00', '2020-10-10 23:59:59') como 'resultado_2';

Observe que o valor de tempo adicional não afeta o resultado do cálculo. A função se concentra apenas na data.

Trabalhando com valores de data errada

Se os valores da data estiverem errados, o datdiff () retornará o valor nulo. Para mostrar, insira uma data inválida para qualquer um dos parâmetros.

$ SELECT DATDIFF ('2099-99-99', '2020-20-20') como 'resultado'

Como esperado, o valor de retorno é nulo.

Combinando datediff () com remos ()

A função Curdate () retorna a data atual da máquina. Não é preciso parâmetro. Saiba mais sobre o uso de Curdate () para inserir a data e a hora atuais em MySQL.

Usando Curdate (), podemos encontrar a diferença entre o presente e a data alvo. Por exemplo, vamos comparar a data atual com um dia no passado.

$ SELECT DATEDIFF (Curdate (), '1980-10-10') como 'resultado'
$ SELECT DATDIFF ('2077-01-01', Curdate ()) como 'resultado'

Observe que existem funções adicionais, por exemplo, current_date (), que agem da mesma maneira que a coceira (). Em situações, ambos podem ser trocados.

$ SELECT DATDIFF (Current_Date (), '1980-10-10') como 'resultado'

Usando datdiff () com tabelas

Até agora, implementamos comandos simples datediff () para demonstrar seus usos. É hora de colocá -lo em ação.

Peguei um exemplo de banco de dados contendo várias informações sobre uma determinada empresa e seus funcionários para demonstração. O banco de dados de amostra está disponível diretamente daqui. Selecionaremos os primeiros e sobrenos dos funcionários deste banco de dados e descobriremos há quanto tempo eles estão funcionando até agora.

$ SELECT FIRST_NAME, LAST_NAME, DATEDIFF (CURDATE (), HIRE_DATE) como 'dias trabalhados' dos funcionários;

Pensamentos finais

Este guia demonstra com sucesso o uso da função datediff () em mysql. Ele calcula a diferença entre duas datas e retorna o valor como o número de dias. Todas as demonstrações ajudam a entender o processo de trabalho da função datediff.

Para saber mais sobre o MySQL, verifique esses guias sobre a criação de tabelas, renomear tabelas, gerenciar privilégios de usuário, etc.

Computação feliz!