Page 1 sur 3
explode dans SQL ?
Posté : 02 sept. 2005, 11:20
par VaN
Bonjour à tous,
$sql_sort = "SELECT DISTINCT date FROM media_articles ORDER BY date DESC";
Avec cette requete, je recupere une date au format date, donc sous cette forme yyyy-mm-dd.
Mais j'aimerais, directement avec la requete, ne récupérer que yyyy-mm de cette date, car devoir ensuite passer par un explode APRES la requete va me poser des problemes.
Cela est'il possible à faire ?
merci.
Posté : 02 sept. 2005, 11:23
par ouckileou
utilise YEAR() et MONTH()
Posté : 02 sept. 2005, 11:49
par VaN
La doc SQL est assez mal faite je trouve. Comment je fais pour les coupler ?
SELECT YEAR(MONTH(date)) ?
Posté : 02 sept. 2005, 12:06
par mere-teresa
La doc SQL est assez mal faite je trouve.
C'est que tu ne connais pas http://www.laltruiste.com/document.php?page=1&rep=18
Et si tu te limites à MySQL : la doc est très bien faite
j'en vois avec SQL Server...
Comment je fais pour les coupler ?
SELECT YEAR(MONTH(date)) ?
Donc pour MySQL :Nexen , fonctions de date SQL
EXTRACT(type FROM date)
La fonction EXTRACT() utilise les mêmes types d'intervalles que la fonction DATE_ADD() ou la fonction DATE_SUB() , mais extrait des parties de date plutôt que des opérations de date.
mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");
-> 1999
mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
-> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
-> 20102
mysql> SELECT EXTRACT(MICROSECOND FROM "2003-01-02 10:30:00.00123");
-> 123
Posté : 02 sept. 2005, 14:34
par VaN
mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
-> 199907
est ce que c'est possible de faire en sorte que l'année et le mois soit séparés par un "-" ? car je vais devoir faire un explode() de cette valeur, pour séparer l'année du mois, mais là j'ai aucun caractere qui me permet de le faire :/
Posté : 02 sept. 2005, 14:43
par ouckileou
est ce que c'est possible de faire en sorte que l'année et le mois soit séparés par un "-" ? car je vais devoir faire un explode() de cette valeur, pour séparer l'année du mois, mais là j'ai aucun caractere qui me permet de le faire :/
je traduis donc :
est-ce que c'est possible de recoller l'année et le mois avec un tiret pour pouvoir les séparer ensuite suivant ce tiret, pour récupérer l'année et le mois
moi y'a quelquechose qui me choque dans cette phrase

Posté : 02 sept. 2005, 14:46
par mere-teresa
Ma réponse sera : RTFM (*)
Regarde bien les liens que je t'indique, ils sont bourrés d'explications.
(*) Read The Fucking Manual
Posté : 02 sept. 2005, 14:48
par ouckileou
Ma réponse sera : RTFM (*)
Regarde bien les liens que je t'indique, ils sont bourrés d'explications.
une piste en plus : DATE_FORMAT() 
Posté : 02 sept. 2005, 14:48
par VaN
est ce que c'est possible de faire en sorte que l'année et le mois soit séparés par un "-" ? car je vais devoir faire un explode() de cette valeur, pour séparer l'année du mois, mais là j'ai aucun caractere qui me permet de le faire :/
je traduis donc :
est-ce que c'est possible de recoller l'année et le mois avec un tiret pour pouvoir les séparer ensuite suivant ce tiret, pour récupérer l'année et le mois
moi y'a quelquechose qui me choque dans cette phrase

avec la valeur qu'il me sort, 199907, je fais comment pour savoir ou est l'année et ou est le mois ? parce la pour le moment, bin c'est que 6 chiffres collés, rien de plus..
Posté : 02 sept. 2005, 14:55
par ouckileou
avec la valeur qu'il me sort, 199907, je fais comment pour savoir ou est l'année et ou est le mois ? parce la pour le moment, bin c'est que 6 chiffres collés, rien de plus..
je comprend ce que tu veux dire, mais tu as moyen de récupérer deux valeurs distinctes directement dans la requête, est-ce que ça ne vaudrait pas le coup plutôt que de faire le explode après ?
c'était ça la remarque en fait, pas une moquerie

Posté : 02 sept. 2005, 15:27
par VaN
avec la valeur qu'il me sort, 199907, je fais comment pour savoir ou est l'année et ou est le mois ? parce la pour le moment, bin c'est que 6 chiffres collés, rien de plus..
je comprend ce que tu veux dire, mais tu as moyen de récupérer deux valeurs distinctes directement dans la requête, est-ce que ça ne vaudrait pas le coup plutôt que de faire le explode après ?
c'était ça la remarque en fait, pas une moquerie

lol ok, dsl pour le ton employé

Si, effectivement, ça serait plus simple.
Mais je viens de penser à un autre truc. il existe bien une fonction qui permet de decouper un string avec les dents.. euh pardon !!! (dsl, mais ça doit etre la blague préféré des developpeurs PHP ça

) en plusieurs partie, selon une position de curseur nan ?
par exemple ici, a la position 4, je decoupe, je me retrouve avec l'année separée du mois. Quelle est le nom de cette fonction ?
Posté : 02 sept. 2005, 15:29
par ouckileou
par exemple ici, a la position 4, je decoupe, je me retrouve avec l'année separée du mois. Quelle est le nom de cette fonction ?
substr() si j'ai bien compris la définition

mais bon là si tu veux mon avis... tu te prends la tête pour rien
dans la page que mere-teresa t'a donné, il y a toutes les fonctions pour sortir directement :
- soit une seule valeur aaaa-mm
- soit 2 valeurs aaaa et mm
Posté : 02 sept. 2005, 15:31
par Truc
voila pr exemple:
echo substr('abcdef', 1); // bcdef
Posté : 02 sept. 2005, 15:37
par VaN
tu te prends la tête pour rien
dans la page que mere-teresa t'a donné, il y a toutes les fonctions pour sortir directement :
- soit une seule valeur aaaa-mm
- soit 2 valeurs aaaa et mm
impossible de trouver l'endroit ou ils expliquent comment rajouter un "-".
$string = "abcdef";
echo substr($string, 1); // bcdef
Cela va me supprimer "a" de $string ?
comment recuperer "a" ensuite ?
Posté : 02 sept. 2005, 15:41
par Truc
ds le meme genre:
echo substr('abcdef', 0, 4); // abcd
