Souvent, vous devez obtenir des données entre 2 dates pour les rapports et l'analyse. Il est assez facile d'obtenir des enregistrements entre 2 dates dans MySQL même s'il n'y a pas de fonction intégrée pour cela. Voici le SQL pour sélectionner des enregistrements entre 2 dates dans MySQL, PostgreSQL et SQL Server.
Comment obtenir des enregistrements entre 2 dates dans MySQL
Voici le SQL pour obtenir des enregistrements entre 2 dates dans MySQL.
Disons que vous avez le tableau suivant sales(order_date, sale)
mysql> create table sales(order_date date,sale int); mysql> insert into sales(order_date,sale) values('2020-06-01',250), ('2020-06-0',350), ('2020-06-02',400), ('2020-06-03',250), ('2020-06-04',200), ('2020-06-05',180), ('2020-06-06',150), ('2020-06-07',650), ('2020-06-08',500), ('2020-06-09',150); mysql> select * from sales; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-01 | 250 | | 2020-06-00 | 350 | | 2020-06-02 | 400 | | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | | 2020-06-07 | 650 | | 2020-06-08 | 500 | | 2020-06-09 | 150 | +------------+------+
Lecture bonus :comment obtenir les enregistrements des dernières 24 heures
Comment obtenir des lignes entre 2 dates dans MySQL
Voici la requête SQL pour obtenir des enregistrements entre 2 dates dans MySQL. Il existe 2 façons d'obtenir des lignes entre 2 dates - en utilisant l'opérateur mathématique et en utilisant la fonction BETWEEN. Nous allons examiner ces deux méthodes.
Lecture bonus : Comment obtenir les enregistrements des 15 derniers jours dans MySQL
Utiliser des opérateurs mathématiques
Supposons que vous souhaitiez obtenir des enregistrements où order_date est entre 2 dates 2020-06-02 et 2020-06-06. Voici le SQL pour obtenir des données entre 2 dates en utilisant des opérateurs mathématiques.
mysql> select * from sales where order_date>='2020-06-02' and order_date<='2020-06-06'; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-02 | 400 | | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | +------------+------+
Dans la requête ci-dessus, nous sélectionnons les enregistrements où order_date est le 2020-06-02 ou après et le 2020-06-06 ou avant. Vous pouvez également utiliser d'autres opérateurs mathématiques tels que>,<,=et <> avec des dates. Vous pouvez également cette requête SQL pour sélectionner des enregistrements entre 2 dates dans PostgreSQL, SQL Server et Oracle.
Lecture bonus :comment obtenir le premier enregistrement de chaque groupe dans MySQL
Si vous souhaitez sélectionner des enregistrements à partir d'une date spécifique jusqu'à la date actuelle, vous pouvez utiliser des fonctions système telles que current_date ou maintenant() dans votre requête.
mysql> select * from sales where order_date>'2020-06-02' and order_date<current_date; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | | 2020-06-07 | 650 | | 2020-06-08 | 500 | +------------+------+
Utilisation de l'opérateur BETWEEN
Vous pouvez également sélectionner des données entre 2 dates en utilisant l'opérateur BETWEEN
mysql> select * from sales where order_date BETWEEN '2020-06-02' and '2020-06-06'; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-02 | 400 | | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | +------------+------+
Lors de la sélection des enregistrements, l'opérateur BETWEEN inclura les enregistrements entre les 2 dates que vous mentionnez, ainsi que les enregistrements aux 2 dates.
Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !