Ajude o desenvolvimento do site, compartilhando o artigo com os amigos!

Introdução ao MySQL TIMESTAMPDIFF()

Mysql timestampdiff() é um dos tipos de função DATE que é usada para calcular a subtração ou a diferença de duas datas que podem ser do mesmo tipo ou diferentes.

Matematicamente, também pode ser escrito como a expressão abaixo:

Timestampdiff=diferença(datetime expression1-datetime expression2)

Where, Ambas as expressões de data e hora podem ser de tipos de dados diferentes. Uma expressão pode ser de data e hora e a segunda expressão pode ser do tipo data ou ambas as expressões podem ser da mesma hora, como data ou data e hora.

Nem sempre é obrigatório que ambas as expressões de data e hora sejam do mesmo tipo de unidade. Um pode ser uma data e outro pode ser datetime. O tipo DATE é calculado principalmente como um datetime com uma hora padrão escrita como '00:00:00′.

Sintaxe da função MySQL TIMESTAMPDIFF()

Abaixo está a sintaxe da função mysql timestampdiff():

TIMESTAMPDIFF (tipo de unidade, expressão de data e hora1, expressão de data e hora2);

Unidade é usada para expressar a diferença de data/hora ou data em dias, meses ou etc. A função Timestampdiff() recebe três argumentos. São eles:

Tipo de unidade, expressão de data e hora1 e expressão de data e hora2. Retorna um inteiro como resultado.

A função TIMESTAMPDIFF retorna a saída como primeira expressão de data e hora1- segunda expressão de data e hora2, aqui expressão de data e hora1 e expressão de data e hora2 são expressões de data ou data e hora.

O argumento unit define a unidade do resultado de (datetime expression1-datetime expression2) que é representado como um inteiro

Abaixo estão as unidades de timestampdiff():

  • Microsegundo
  • Segundo
  • Minuto
  • Hora
  • Dia
  • Semana
  • Mês
  • Quarter e
  • Ano

A menor unidade que podemos calcular a função timestampdiff é o SEGUNDO e a maior é o ANO.

MySQL TIMESTAMPDIFF Função com Exemplos

MySQL timestampdiff function com exemplos são dados abaixo:

1- Dias

Abaixo está o exemplo que retorna uma diferença de dois valores de data 2020-03-01 e 2020-03-10 em dias:

Consulta:

select
timestampdiff(dia,'2020-03-01', '2020-03-10')
AS result;

Saída:

Aqui, AS significa Alias, o que significa que dará um resultado de nome para a coluna que mostrará o resultado calculado da consulta.

2. Meses

Abaixo está o exemplo que retorna uma diferença de dois valores de data 2020-03-01 e 2020-10-1 em meses:

Consulta:

select
timestampdiff(mês, '2020-03-01', '2020-10-1')
AS result;

Saída:

3. Minutos

Abaixo está o exemplo que retorna uma diferença de dois valores DATETIME em minutos:

Consulta:

select
timestampdiff(minuto, '2020-01-03 10:10:00', '2020-01-03 10:30:00')
AS result;

Saída:

Nota: TIMESTAMPDIFF reflete apenas a parte do tempo.

Consulta:

select
timestampdiff(minuto, '2020-05-18 10:00:00', '2020-05-18 7:45:41')
AS result;

Saída:

Como passamos o minuto como argumento de unidade, o resultado da consulta calcula apenas o minuto e retorna 45 como saída. Mas a saída real deve ser de 45 minutos e 41 segundos. Se quisermos que a saída seja em segundos, temos que passar o segundo no argumento da unidade.

Consulta:

select
timestampdiff(segundo, '2020-05-18 10:00:00', '2020-05-18 7:45:41')
AS result;

Saída:

45 minutos 59 segundos=45 x 60 + 41 (segundos)=2741 segundos

4. Microssegundos

Abaixo está o exemplo que retorna uma diferença de dois valores DATETIME em microssegundos:

Consulta:

select
timsetampdiff(microssegundo, '2020-02-01 10:30:27.00000', '2020-02-01 10:30:27.123456')
AS result;

Saída:

Casos de uso da função MySQL Timestamp com exemplos

Casos de uso da função mysql timestamp são dados abaixo:

Como calcular a idade de uma criança com a função Timestampdiff()?

Primeiro, vamos criar uma tabela com o nome filho para ilustração:

criar tabela filho( Roll_no. INT auto_increment PRIMARY KEY,name varchar(100) NOT NULL, dob DATE NOT NULL);

Depois de criar a tabela, agora é hora de inserir alguns registros nela.

Inserir nos valores filho(nome,dob)(('aman', '1990-01-01'),( 'rahul', '1989-06-06'),( 'ashish', '1985 -03-02'),( 'divya', '1992-05-05'),( 'kunal', '1995-12-01'));

Podemos saber calcular a idade de cada filho da tabela filha:

Para buscar os registros da tabela, a instrução child select é usada após calcular a diferença de timestamp da data de nascimento de cada filho.

select
Roll_no,
nome,
dob,
timestamp(year,dob, '2020-01-01') idade
de
criança;

Na consulta acima, calculamos a idade da criança em 2020-01-01. Além disso, se quisermos calcular a idade atual de cada criança, podemos usar a função now() como um terceiro argumento da função timestampdiff.

select
id,
nome,
dob,
timestamp(ano,dob,AGORA()) idade
de
criança;

Saída negativa da consulta:

Se o primeiro argumento de data e hora for maior que o segundo argumento de data e hora, a saída da consulta será um número negativo.

select
timestampdiff(dia, '2020-04-22', '2020-04-4')
AS result;

Saída:

No exemplo abaixo, pegamos os dois tipos diferentes de argumentos

select
timestampdiff(minuto, '2019-12-31', '2020-03-22 23:15:59')
AS result;

Saída:

Calcule as horas de trabalho de cada funcionário em segundo

Para isso primeiro vamos criar uma tabela chamada EmployeeEntry:

criar tabela EmployeeEntry(
DataHora ClockInTime,
ClockOutTime datahora,
Info INT(11) AS (ABS(TIMESTAMPDIFF(segundo,ClockInTime,ClockOutTime)))
)ENGINE=MeuISAM;

Vamos agora inserir alguns registros na tabela EmployeeEntry:

inserir nos valores EmployeeEntry (ClockInTime, ClockOutTime)('2020-07-22 9:30:00','2020-07-22 06:34:56');
inserir em EmployeeEntry (ClockInTime, ClockOutTime) valores ('2020-12-11 10:00:00','2020-12-11 07:30:16');

Para buscar todos os registros da tabela, usaremos a instrução select

selectfrom EmployeeEntry;

Saída:

Conclusão

Neste artigo, aprendemos sobre a função MySQL TIMESTAMPDIFF, como usá-la para resolver nosso problema diário, seus diferentes casos de uso. Também aprendemos sobre suas diferentes unidades da função timestampdiff. Podemos usar diferentes unidades desta função de acordo com nossos requisitos. Explicamos dois exemplos do mundo real, como cálculo de idade e horas de trabalho do cálculo de funcionários.

Ajude o desenvolvimento do site, compartilhando o artigo com os amigos!