Requete select date format

Eléphant du PHP | 59 Messages

24 août 2010, 12:34

Bonjour,

Une petite question
J'ai dans ma table une colonne date au format 24-08-2010

je voudrais faire une requete pour selectionner tous les champs avec la meme année (ex:2010) et une autre avec le mois (ex: 08-2010)
j'ai essayé ces requetes qui ne marchent pas. je ne sais pas quoi mettre après = pour selectionner uniquement l'année ou l'année+mois:

SELECT id FROM ma_table WHERE (STR_TO_DATE(date, '%d-%m-%Y') = STR_TO_DATE('2010', '%Y'))
SELECT id FROM ma_table WHERE (STR_TO_DATE(date, '%d-%m-%Y') = STR_TO_DATE('08-2010', '%m-%Y'))

Si quelqu'un peut m'aider

Merci

ViPHP
ViPHP | 5462 Messages

24 août 2010, 12:44

je dirais comme ca
SELECT `id` FROM `ma_table` WHERE YEAR(STR_TO_DATE(`date`, '%d-%m-%Y') = 2010;
SELECT `id` FROM `ma_table` WHERE YEAR_MONTH(STR_TO_DATE(`date`, '%d-%m-%Y') = 201008;

Eléphant du PHP | 59 Messages

25 août 2010, 10:33

Merci pour l'aide

pour la première par contre il manque une parenthèse
SELECT `id` FROM `ma_table` WHERE YEAR(STR_TO_DATE(`date`, '%d-%m-%Y')) = 2010;
et la deuxième je n'arrive pas à la faire fonctionner j'ai essayé de plusieurs façon, mais rien.

Une autre idée peut être?

Merci

ViPHP
ViPHP | 5462 Messages

25 août 2010, 18:46

le YEAR_MONTH te retourne quoi ?

Eléphant du PHP | 59 Messages

25 août 2010, 20:24

Alors avec cette requete:
SELECT `id` FROM `ma_table` WHERE YEAR_MONTH(STR_TO_DATE(`data_txt`, '%d-%m-%Y')) = 201008
ça me retourne:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'YEAR_MONTH(STR_TO_DATE(`data_txt`, '%d-%m-%Y')) = 201008 LIMIT 0, 30' at line 1

ViPHP
ViPHP | 5462 Messages

25 août 2010, 22:32

comme ca ?
SELECT `id` FROM `ma_table` WHERE EXTRACT(YEAR_MONTH FROM STR_TO_DATE(`data_txt`, '%d-%m-%Y')) = 201008

Eléphant du PHP | 59 Messages

25 août 2010, 22:55

Problème résolu.

Merci pour l'aide stealth35