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,
A expressão pode ser de qualquer um dos seguintes formatos.
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.
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!