Extraction de l'année dans un champ date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Extraction de l'année dans un champ date

par VaN » 01 août 2006, 12:19

Toutes mes dates sont renseignées on dirait : /

trouvé, la syntaxe exacte n'est pas

SELECT YEAR('date_ajout') AS gal_date FROM galeries ORDER BY gal_date DESC

mais

SELECT YEAR(date_ajout) AS gal_date FROM galeries ORDER BY gal_date DESC

par VaN » 01 août 2006, 12:13

Effectivement, ça peut etre le cas. Je suis stagiaire, j'ai accès au ftp, mais d'accès direct à la bdd, je vais me faire une petite requete simplifiée pour voir ça : )

je te tiens au courant

par zeus » 01 août 2006, 12:07

C'est que tu doit avoir des dates qui ne sont pas renseignées ... :-k

Essaye de commencer par vérifier que tu as des dates qui ne sont pas renseignées pour s'assurer qu'il n'y a pas d'erreur, ensuite il ne te restera qu'a ne pas les sélectionner en ajoutant un WHERE à ta requete

par VaN » 01 août 2006, 12:01

Ok, j'arrives à ne plus avoir d'erreur SQL, par contre, dans phpmyadmin, il me sort une liste de NULL : /

gal_date
NULL
NULL
NULL
NULL
NULL


voilà la requete :
SELECT YEAR('date_ajout') AS gal_date FROM galeries ORDER BY gal_date DESC
Dans le ORDER BY, je dois mettre mon champs renommé, ou le nom d'origine ? J'ai essayé avec les deux, meme resultats.

par zeus » 01 août 2006, 11:32

la fonction MySQL YEAR(date) (cherche YEAR(date) dans la page) te permet de ne conserver que l'année d'une date.

Avec ça, tu devrais arriver à faire ce que tu désires

Extraction de l'année dans un champ date

par VaN » 01 août 2006, 11:26

Bonjour,

Tout est dans le titre il me semble. J'ai un champ date_ajout dans une table, de type date (YYYY-MM-DD), et j'aimerais, à partir de ma requete SQL, ne récuperer que la partie YYYY, et si possible, par dessu, rajouter un DISTINCT, car la requete va parcourir la table, et je ne veux recuperer qu'une occurence chaque année.

Comment dois-je formuler ma requete ?

D'apres quelques sources sur le web, j'ai tenté ça, sans succès :
$sql_list_date = "SELECT EXTRACT DISTINCT(YEAR FROM TIMESTAMP 'date_ajout') AS date 
FROM galeries 
ORDER BY date_ajout DESC";
?>