Parfois, vous devrez peut-être obtenir des lignes des 30 derniers jours ou obtenir les données du dernier mois dans MySQL. Il est facile d'obtenir des enregistrements des 30 derniers jours dans MySQL même s'il n'y a pas de fonction intégrée pour cela. Voici la requête SQL pour sélectionner les enregistrements des 30 derniers jours.
Comment obtenir les enregistrements des 30 derniers jours dans MySQL
Voici le SQL pour obtenir les enregistrements des 30 derniers jours. Disons que vous avez le tableau suivant sales(order_date, sale) qui contient des données de ventes quotidiennes.
mysql> create table sales(order_date date,sale int); mysql> insert into sales(order_date, sale) values('2020-05-04',230), ('2020-05-05',200), ('2020-05-06',210), ('2020-05-07',180), ('2020-05-08',220), ('2020-05-09',230), ('2020-05-10',220), ('2020-05-11',225), ('2020-05-12',200), ('2020-05-13',210), ('2020-05-14',190), ('2020-05-15',200), ('2020-05-16',220), ('2020-05-17',210), ('2020-05-18',190), ('2020-05-19',180), ('2020-05-20',250), ('2020-05-21',240), ('2020-05-22',245), ('2020-05-23',230), ('2020-05-24',220), ('2020-05-25',210), ('2020-05-26',130), ('2020-05-27',200), ('2020-05-28',210), ('2020-05-29',221), ('2020-05-30',235), ('2020-05-31',233), ('2020-06-01',237), ('2020-06-02',230), ('2020-06-03',220), ('2020-06-04',210), ('2020-06-05',200), ('2020-06-06',260), ('2020-06-07',270), ('2020-06-08',240), ('2020-06-09',290), ('2020-06-10',230); mysql> select * from sales; +------------+------+ | order_date | sale | +------------+------+ | 2020-05-04 | 230 | | 2020-05-05 | 200 | | 2020-05-06 | 210 | | 2020-05-07 | 180 | | 2020-05-08 | 220 | | ... | ... | | ... | ... | | 2020-06-06 | 260 | | 2020-06-07 | 270 | | 2020-06-08 | 240 | | 2020-06-09 | 290 | | 2020-06-10 | 230 | +------------+------+
Lecture bonus :comment obtenir des enregistrements entre 2 dates dans MySQL
Comment obtenir les enregistrements des 30 derniers jours
Voici la requête SQL pour obtenir les enregistrements des 30 derniers jours dans MySQL.
mysql> select * from sales where order_date > now() - INTERVAL 30 day; +------------+------+ | order_date | sale | +------------+------+ | 2020-05-12 | 200 | | 2020-05-13 | 210 | | 2020-05-14 | 190 | | ... | ... | | ... | ... | | 2020-06-08 | 240 | | 2020-06-09 | 290 | | 2020-06-10 | 230 | +------------+------+
Dans la requête ci-dessus, nous sélectionnons les enregistrements où order_date tombe après un intervalle passé de 30 jours. Nous utilisons la fonction système now() pour obtenir la dernière valeur datetime et la clause INTERVAL pour calculer une date de 30 jours dans le passé.
Vous pouvez également utiliser current_date au lieu de maintenant()
mysql> select * from sales where order_date > current_date - interval 30 day;
Lecture bonus :comment obtenir des enregistrements des dernières 24 heures dans MySQL
Comment obtenir les données du dernier mois
Voici la requête SQL pour obtenir les enregistrements du dernier mois dans MySQL.
mysql> select * from sales where order_date > current_date - interval 1 month; +------------+------+ | order_date | sale | +------------+------+ | 2020-05-11 | 225 | | 2020-05-12 | 200 | | 2020-05-13 | 210 | | ... | ... | | ... | ... | | 2020-06-08 | 240 | | 2020-06-09 | 290 | | 2020-06-10 | 230 | +------------+------+
Lecture bonus :Comment obtenir les enregistrements du mois en cours dans MySQL
Dans la requête ci-dessus, nous sélectionnons les lignes où order_date tombe après un intervalle d'un mois. Nous utilisons l'argument '1 mois' pour la clause INTERVAL, au lieu d'utiliser '30 jours'
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 !