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)
3 Réponses :
Vous devez calculer correctement les premiers et derniers jours de la plage avec l'aide last_day () code> fonction. Par exemple:
Calculez le premier jour de la plage P> sortie: p> 2018-05-01 P>
BlockQuote> Calculez le dernier jour de la plage p> sortie: p> 2019-04-30 p>
blockQuote> La requête complète pourrait ressembler à: p>
Ceci est exactement ce que je cherchais. Merci maxime
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
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)
Semble être un peu plus complexe. La solution Maxim était facile à comprendre et remplit mes besoins. Merci quand même.
@Strawberry Que voulez-vous dire?
Je veux dire juste ça.