Page 1 sur 1

substr et DISTINCT

Posté : 20 oct. 2005, 02:10
par Elie
Bonjour :)

Je stocke des informations au format date dans un champ 'datetime';

Je voudrais recuperer toutes les differentes années presentes dans ma base de donnes ...

Selon un logique surement pas compatible avec MySQL je pensais a un truc du genre :)

SELECT DiSTINCT substr('datetime',0,4) FROM ma table

Il y a t il quelque chose de semblable ?

Posté : 20 oct. 2005, 09:03
par zeus
substr est une fonction PHP. tu ne peut donc pas l'utiliser dans une requete SQL.

Mais par contre, tu peut formater la date avant de faire le DISTINCT

Code : Tout sélectionner

SELECT DISTINCT DATE_FORMAT(datetime, '%Y') FROM ma_table

Posté : 20 oct. 2005, 09:15
par pjl
encore plus simple avec la commande YEAR.
YEAR(date)
Retourne l'année de la date date , dans un intervalle de 1000 à 9999 :
mysql> SELECT YEAR('98-02-03'); -> 1998



mysql> SELECT YEAR('98-02-03'); -> 1998
http://www.nexen.net/docs/mysql/annotee ... ?lien=year

Posté : 20 oct. 2005, 11:01
par Invité
La reponse de Zeus correspond plus a ma demande :)

Puisque je n'ai pas la valeur de la date a formatée :)

Posté : 20 oct. 2005, 11:05
par zeus
:shock: Alors, ce qu'il te faut, c'est un mélange des 2 réponses avec la fonction de pjl. Je ne veut pas être méchant mais c'est logique

Tu mets le nom de ton champs dans la fonction Year

Code : Tout sélectionner

SELECT DISTINCT YEAR(datetime) FROM ma_table

Posté : 20 oct. 2005, 11:30
par pascaltje
substr est une fonction PHP. tu ne peut donc pas l'utiliser dans une requete SQL.
heureusement, en SQL on a SUBSTRING :)

A+

Pascal

Posté : 20 oct. 2005, 11:35
par zeus
heureusement, en SQL on a SUBSTRING :)
Tant qu'a donner une réponse, j'ai donné celle qui me semblait la plus adéquate

Re: substr et DISTINCT

Posté : 20 oct. 2005, 12:21
par pjl
La reponse de Zeus correspond plus a ma demande :)

Puisque je n'ai pas la valeur de la date a formatée :)
ta date est déjà formatée. Tu l'as toi même écrit.
Je stocke des informations au format date dans un champ 'datetime';