Page 1 sur 1

Requete select date format

Posté : 24 août 2010, 12:34
par alsab
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

Re: Requete select date format

Posté : 24 août 2010, 12:44
par stealth35
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;

Re: Requete select date format

Posté : 25 août 2010, 10:33
par alsab
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

Re: Requete select date format

Posté : 25 août 2010, 18:46
par stealth35
le YEAR_MONTH te retourne quoi ?

Re: Requete select date format

Posté : 25 août 2010, 20:24
par alsab
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

Re: Requete select date format

Posté : 25 août 2010, 22:32
par stealth35
comme ca ?
SELECT `id` FROM `ma_table` WHERE EXTRACT(YEAR_MONTH FROM STR_TO_DATE(`data_txt`, '%d-%m-%Y')) = 201008

Re: Requete select date format

Posté : 25 août 2010, 22:55
par alsab
Problème résolu.

Merci pour l'aide stealth35