La fonction DATETIME

x@v
Mammouth du PHP | 570 Messages

24 juil. 2008, 16:48

Bonjour,
j'essaie d'enregistrer dans un champ DATETIME la date du jour donc j'ai fait :

Code : Tout sélectionner

$datetime=time(); // année/mois/jour/heure/minute/seconde $d=date("Y-m-d-H-i-s", $datetime); $this->sql="INSERT INTO stats_trafic (id, langue, date, ip, referer, page, navigateur, os) ". " VALUES(NULL, '$langue', '".$d."', '".$_SERVER["SERVER_ADDR"]."', '".$_SERVER["HTTP_REFERER"]."', '".$_SERVER['PHP_SELF']."', '$navigateur', '$value')";
ce qui fonctionne bien, mais ensuite je veux obtenir et afficher toutes les date d'aujourd'hui !
et je fait ça

Code : Tout sélectionner

$this->sql="SELECT date FROM stats_trafic WHERE date=TO_DAYS(NOW())";
Mais sa ne fonctionne pas ?
Merci
edit ->
cette requete est plus appropri pour l'insertion du jour ?

Code : Tout sélectionner

$this->sql="INSERT INTO stats_trafic (id, langue, date, ip, referer, page, navigateur, os) ". " VALUES(NULL, '$langue', CURTIME(), '".$_SERVER["SERVER_ADDR"]."', '".$_SERVER["HTTP_REFERER"]."',
Mais pour la comparaison j'ai donc fait :

Code : Tout sélectionner

$this->sql="SELECT date FROM stats_trafic WHERE date=NOW()";
Mais sa me renvoie.
SELECT date FROM stats_trafic WHERE date=NOW()
et pour ça pareil

Code : Tout sélectionner

$this->sql="SELECT date FROM stats_trafic WHERE date=TO_DAYS(NOW()";
sa ne me renvoie pas la date

ViPHP
AB
ViPHP | 5818 Messages

24 juil. 2008, 20:13

Essaies

Code : Tout sélectionner

WHERE TO_DAYS(date) = TO_DAYS(NOW())

ViPHP
AB
ViPHP | 5818 Messages

24 juil. 2008, 20:33

Ah oui aussi pour insérer la date et l'heure dans mon champ datetime j'utilise NOW()

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 juil. 2008, 21:19

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

x@v
Mammouth du PHP | 570 Messages

25 juil. 2008, 00:24

Effectivement j'avais trouvé l'insertion
		$this->sql="INSERT INTO stats_trafic (id, langue, date, ip, referer, page, navigateur, os) ".
		" VALUES(NULL, '$langue', NOW(), '".$_SERVER["SERVER_ADDR"]."', '".$_SERVER["HTTP_REFERER"]."', 
		'".$_SERVER['PHP_SELF']."', '$navigateur', '$value')";
ce qui m'affiche :
2008-07-23 18:53:45
par contre impossible de récupérer les résultats d'un jour ?
		$jour=date("Y-m-d");
		echo $jour;
		$this->sql="SELECT date FROM stats_trafic WHERE DATE_FORMAT( date, '%Y-%m-%d' )= '".$jour."'";
edit->
$this->sql="SELECT date FROM stats_trafic WHERE DATE_FORMAT( date, '%Y-%m-%d' )= Curdate()";
sa fonctionne merci ;)
J'ai pas fait de bench mais à mon avis il y a d'autre manière de gagner en performance, vos contribution sont les bienvenue.
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 451 Messages

25 juil. 2008, 00:37

Voici le manuel sur les dates pour mysql peut-être que tu trouvera la solution

http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

x@v
Mammouth du PHP | 570 Messages

25 juil. 2008, 01:01

en faite pour faire des comparaisons de date
sur trois jours par exemple..

Code : Tout sélectionner

$this->sql="SELECT date FROM stats_trafic WHERE TO_DAYS(NOW()) - TO_DAYS(date) < 3;";
par contre
$this->sql="SELECT date FROM stats_trafic WHERE TO_DAYS(date) > 1 - TO_DAYS(date) < 3;";
ne fonctionne pas, dur, dur mysql