[MySQL] Selection du mois dans un date
Salut tout le monde. Je cherche une commande MySQL permettant de sélectionner des valeurs dont le champ est compris dans un mois donné, existe-t-il une fonction capable de réaliser un truc dans ce genre:
"SELECT * FROM table WHERE mois(champ_date)='02'"
Je n'ai pas trouvé de telle fonction dans la notice en ligne MySQL...
Merci de votre attention.
le 16/08/2006 à 10:59
Bzh
Tu peux peut être regarder du coté des expressions régulières.
Mais, à mon avis, il doit y avoir une astuce pour ça...
Mais sinon, expressions régulières ...
Tchusss ...
Recherche la fonction date_format dans les fonctions de date de MySQL.
Elle te retourne plein de trucs, un peu comme la fonction date de php.
Par contre, attention à ne pas faire des jointures ou des order by sur le résultat d'un date_format (impossible à optimiser : MySQL sera obligé de calculer le date_format pour chaque ligne).
(les expressions regulieres, c'est une mauvaise idée, surtout sur un champs de type date ou datetime)
Si tu as ton champ SQL de type "Date", je sais que tu peux sélectionné le mois comme ceci :
<?php
$sql = 'SELECT * FROM TaTable WHERE RIGHT(champ_date,2)="31" AND MONTH(champ_date)="12" AND YEAR(champ_date)="1999"';
// Pour RIGHT(champ_date,2) je crois que il n'existe pas la fonction DAY(champ_date) mais je te dis tout ça de mémoire, à toi de vérifier après et trouve autre chose si tu as mieux.
?>
Ciao :)
Si t'es fier d'être un Nazebroke, tape dans tes mains !!
Merci bien pour vos réponses, j'ai finalement utilisé une requêtes de type :
"SELECT AVG(champ1) as moyenne_champ1, date_format(champ_date, "%c-%Y") as date_mois from table group by date_mois"
Cela me permet de sortir les moyennes du champ1 pour chaque mois.
Tu est tombé dans le piége que j'avais enoncé plus haut...
Ta requete est certes jolie, mais énorme consommatrice de ressource.
Mysql est obligé de se cogner tous les enregistrements de la table pour faire l'order by.
Je serais toi, je ferais le calcul de la moyenne par mois en PHP.
le 19/08/2006 à 22:50
jls
Pour ce qui est de la sélection du mois, la fonction MONTH(colonne_date) facilite pas mal les choses sur des colonnes de type date ou assimilé...
On peut la mettre dans le select ou dans le where
le 19/08/2006 à 22:52
jls
Désolé, je n'avais pas vu que Superleseb donnait déjà la fonction... Toutes mes confisions...
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: