sql >> Base de Datos >  >> RDS >> Mysql

DATEDIFF() Ejemplos – MySQL

En MySQL, puede usar DATEDIFF() función para encontrar la diferencia entre dos fechas. La forma en que funciona es que proporciona dos argumentos (uno para cada fecha) y DATEDIFF() devolverá el número de días entre las dos fechas.

Ejemplos a continuación.

Sintaxis

Primero, aquí está la sintaxis:

DATEDIFF(expr1,expr2)

Donde expr1 es la primera fecha, y expr2 es la segunda fecha.

Ejemplo 1:uso básico

Aquí hay un ejemplo para demostrarlo.

SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';

Resultado:

+--------+
| Result |
+--------+
|     29 |
+--------+

En este ejemplo, la primera fecha es posterior a la segunda fecha. En este caso obtenemos un valor de retorno positivo.

Ejemplo 2:comparación con una fecha anterior

La primera fecha no tiene que ser una fecha posterior a la segunda fecha. Puede usar una fecha anterior para el primer argumento y devolverá un valor negativo. Si intercambiamos esos dos argumentos, obtenemos lo siguiente:

SELECT DATEDIFF('2020-10-01', '2020-10-30') AS 'Result';

Resultado:

+--------+
| Result |
+--------+
|    -29 |
+--------+

Ejemplo 3:valores de fecha y hora

Cuando se usa con datetime valores, sólo la parte de la fecha se utiliza para comparar las fechas. Ejemplo:

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 |
+----------+----------+

Ejemplo 4:consulta de base de datos

Aquí hay un ejemplo del uso de DATEDIFF() en una consulta de base de datos. En este ejemplo, comparo el payment_date columna con la fecha de hoy (usando el CURDATE() función para devolver la fecha de hoy):

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 |
+------------+------------+-------+