Problème pour extraire la date d'un type datetime

melodide
Invité n'ayant pas de compte PHPfrance

27 avr. 2010, 16:52

J'ai un souci avec un de mes champ : son type est datetime et j'aurais aimé récupérer seulement la date
j'ai fait :
$laDate=date($val["DATE_ACTION"])
sa ne fonctionne pas j'ai essayé avec CAST et CONVERT et sa ne fonctionne pas non plus.
Comment dois je faire?

ViPHP
ViPHP | 5462 Messages

27 avr. 2010, 16:58

hello, 2 solutions,

sois en SQL dans ta requete
DATE(DATE_ACTION) as DATE_ACTION
sois en php
$date = date('Y-m-d', strtodate($val["DATE_ACTION"]));

melodide
Invité n'ayant pas de compte PHPfrance

27 avr. 2010, 17:01

c'est quoi strtodate?

ViPHP
ViPHP | 5462 Messages

27 avr. 2010, 17:07

c'est quoi strtodate?
oups c'etait strtotime #-o

c'est pour convertir un date type chaine (exemple : 23/05/2009 15:50) en timestamp (nombre de seconde depuis 01/01/1970 date UNIX) c'est le 2eme parametre de la fonction date, qui si il n'est pas remplis sera le timestamp de maintenant :wink:

melodide
Invité n'ayant pas de compte PHPfrance

27 avr. 2010, 17:17

ouai je viens d'essayé ta solution le problème c'est que j'ai beaucoup de 01-01-70 alors que ça ne devrait pas l'être. Je vais essayé la solution dans le select et je dirai si sa marche ou pas

melodide
Invité n'ayant pas de compte PHPfrance

27 avr. 2010, 17:24

Je vien d'essayé l'autre solution en sql le problème c'est que sa me renvoie une date de ce type la :
26/04/2010 00:00:00

ViPHP
ViPHP | 5462 Messages

27 avr. 2010, 17:28

Je vien d'essayé l'autre solution en sql le problème c'est que sa me renvoie une date de ce type la :
26/04/2010 00:00:00
ouai ca a cause des / ca
regarde dans la doc je crois que tu peu choisir le format

melodide
Invité n'ayant pas de compte PHPfrance

28 avr. 2010, 10:08

J'ai essayé de changer le format mais je dois m'y prendre mal car ça ne fonctionne pas :

J'ai fait
SELECT DATE_FORMAT(DATE(DATE_ACTION),'%d-%m-%Y'
on me renvoie une erreur :
unexpected T_CONSTANT_ENCAPSED_STRING in ....

ViPHP
ViPHP | 5462 Messages

28 avr. 2010, 10:31

hello, et si tu fais juste
SELECT DATE_FORMAT(DATE_ACTION,'%d-%m-%Y')

melodide
Invité n'ayant pas de compte PHPfrance

28 avr. 2010, 10:43

C'est bon j'ai trouvé la solution il fallait juste remplacé les cotes par des guillemets :) mais le souci maintenant c'est qu'avec le format %d-%m-%Y le tri par date se fait par jour et non par an je suis obligé de changé le format en '%Y-%m-%d' pour que le tri se fasse bien.

car la en faite sa me faisait :
18/12/2009
18/12/2008
18/10/2009
18/10/2008

comment puis je faire pour que le tri se fasse bien ? il y a une solution ou pas?

laul
Invité n'ayant pas de compte PHPfrance

05 févr. 2014, 13:25

la reponse attendu est :
SELECT DATE_FORMAT(DATE_ACTION,'%d-%m-%Y') AS plup FROM liste_item GROUP BY plup