2009-11-10 17 views

Répondre

1
SELECT CONCAT_WS('-', '2009', MONTH(NOW()), '01') - INTERVAL 1 MONTH 
+0

Réservoirs perfekt;) tout ce dont j'ai besoin. – ParisNakitaKejser

+0

Sauf qu'il ne répond pas à la question réelle du tout ... – Guffa

-1

Plus est un opérateur arithmétique, vous devez utiliser concat.

SELECT DATE_ADD(concat('2009-',MONTH(NOW()),'-01') , INTERVAL -1 MONTH) 

ou mieux

select date(now()) - interval day(NOW())-1 day - interval 1 month; 

(ce sera aussi travailler en 2010)

1

Il est la concaténation de la date qui ne fonctionne pas. Il convertit les chaînes en nombres, donc vous obtenez 2009 + 11 + -1 = 2019, qui ne parvient pas à convertir en date. Au lieu de concaténer une date à partir de chaînes, vous pouvez utiliser la fonction last_day pour obtenir le dernier jour du mois en cours, ajouter un jour pour passer au jour suivant du mois suivant, puis soustraire deux mois pour accéder au premier jour du mois précédent:

select last_day(now()) + interval 1 day - interval 2 month;