-1
votes

Obtenir des enregistrements de l'année dernière à la dernière date du mois précédent dans MySQL

J'essaie d'obtenir des enregistrements de l'année dernière et jusqu'à la date de la dernière date du mois provisoire, c'est-à-dire pas compris le mois en cours. Voici ma requête:

SELECT `customer_id`, `customer_name`, `customer_date` 
FROM `customers` 
WHERE DATE(`customer_date`) <= (CURDATE() - INTERVAL 1 MONTH) 
      AND DATE(customer_date) >= (CURDATE() - INTERVAL 12 MONTH)


2 commentaires

@Strawberry Que voulez-vous dire?


Je veux dire juste ça.


3 Réponses :


1
votes

Vous devez calculer correctement les premiers et derniers jours de la plage avec l'aide last_day () fonction. Par exemple:

Calculez le premier jour de la plage xxx

sortie:

2018-05-01

Calculez le dernier jour de la plage xxx

sortie:

2019-04-30

La requête complète pourrait ressembler à: xxx


1 commentaires

Ceci est exactement ce que je cherchais. Merci maxime



-1
votes
SELECT `customer_id`, `customer_name`, `customer_date` FROM `customers` WHERE
MONTH(`customer_date`) <= (CURDATE() - INTERVAL 1 MONTH) AND 
MONTH(customer_date) >= (CURDATE() - INTERVAL 12 MONTH)
hope this help

0 commentaires

0
votes

Pour obtenir des données jusqu'au mois précédent:

where customer_date < curdate() + interval (1 - day(curdate()) day and
      customer_date >= (curdate() + interval (1 - day(curdate()) day) - interval 1 year)


1 commentaires

Semble être un peu plus complexe. La solution Maxim était facile à comprendre et remplit mes besoins. Merci quand même.