Mysql
 sql >> Base de données >  >> RDS >> Mysql

Exemples DATEDIFF() – MySQL

Dans MySQL, vous pouvez utiliser le DATEDIFF() fonction pour trouver la différence entre deux dates. La façon dont cela fonctionne est que vous fournissez deux arguments (un pour chaque date) et DATEDIFF() renverra le nombre de jours entre les deux dates.

Exemples ci-dessous.

Syntaxe

Tout d'abord, voici la syntaxe :

DATEDIFF(expr1,expr2)

expr1 est la première date, et expr2 est le deuxième rendez-vous.

Exemple 1 - Utilisation de base

Voici un exemple pour illustrer.

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

Résultat :

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

Dans cet exemple, la première date est postérieure à la deuxième date. Dans ce cas, nous obtenons une valeur de retour positive.

Exemple 2 - Comparaison avec une date antérieure

La première date ne doit pas nécessairement être postérieure à la deuxième date. Vous pouvez utiliser une date antérieure pour le premier argument et il renverra une valeur négative. Si nous échangeons ces deux arguments, nous obtenons ce qui suit :

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

Résultat :

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

Exemple 3 - Valeurs DateHeure

Lorsqu'il est utilisé avec datetime valeurs, seule la partie date est utilisée pour comparer les dates. Exemple :

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';

Résultat :

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|       29 |      -29 |
+----------+----------+

Exemple 4 - Requête de base de données

Voici un exemple d'utilisation de DATEDIFF() dans une requête de base de données. Dans cet exemple, je compare le payment_date colonne avec la date d'aujourd'hui (en utilisant le CURDATE() fonction pour renvoyer la date d'aujourd'hui):

USE sakila;
SELECT
  DATE(payment_date) AS 'Date/Time',
  CURDATE(),
  DATEDIFF(payment_date, CURDATE()) AS 'Date'
FROM payment
WHERE payment_id = 1;

Résultat :

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