Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos de DATEDIFF() – MySQL


No MySQL, você pode usar o DATEDIFF() função para encontrar a diferença entre duas datas. A maneira como funciona é que você fornece dois argumentos (um para cada data) e DATEDIFF() retornará o número de dias entre as duas datas.

Exemplos abaixo.


Sintaxe


Primeiro, aqui está a sintaxe:
DATEDIFF(expr1,expr2)

Onde expr1 é a primeira data e expr2 é a segunda data.

Exemplo 1 – Uso básico


Aqui está um exemplo para demonstrar.
SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';

Resultado:
+--------+
| Result |
+--------+
|     29 |
+--------+

Neste exemplo, a primeira data é posterior à segunda data. Neste caso, obtemos um valor de retorno positivo.

Exemplo 2 – Comparação com uma data anterior


A primeira data não precisa ser posterior à segunda data. Você pode usar uma data anterior para o primeiro argumento e ele retornará um valor negativo. Se trocarmos esses dois argumentos, obtemos o seguinte:
SELECT DATEDIFF('2020-10-01', '2020-10-30') AS 'Result';

Resultado:
+--------+
| Result |
+--------+
|    -29 |
+--------+

Exemplo 3 – Valores de data e hora


Quando usado com datetime valores, apenas a parte da data é usada para comparar as datas. Exemplo:
SELECT 
  DATEDIFF('2020-10-30 23:59:59', '2020-10-01') AS 'Result 1',
  DATEDIFF('2020-10-01 23:59:59', '2020-10-30') AS 'Result 2';

Resultado:
+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|       29 |      -29 |
+----------+----------+

Exemplo 4 – Consulta ao banco de dados


Aqui está um exemplo de uso de DATEDIFF() em uma consulta de banco de dados. Neste exemplo, comparo o payment_date coluna com a data de hoje (usando o CURDATE() função para retornar a data de hoje):
USE sakila;
SELECT
  DATE(payment_date) AS 'Date/Time',
  CURDATE(),
  DATEDIFF(payment_date, CURDATE()) AS 'Date'
FROM payment
WHERE payment_id = 1;

Resultado:
+------------+------------+-------+
| Date/Time  | CURDATE()  | Date  |
+------------+------------+-------+
| 2005-05-25 | 2018-06-25 | -4779 |
+------------+------------+-------+