Page 1 sur 1

La fonction DATETIME

Posté : 24 juil. 2008, 16:48
par x@v
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

Posté : 24 juil. 2008, 20:13
par AB
Essaies

Code : Tout sélectionner

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

Posté : 24 juil. 2008, 20:33
par AB
Ah oui aussi pour insérer la date et l'heure dans mon champ datetime j'utilise NOW()

Posté : 24 juil. 2008, 21:19
par zeus
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.

Posté : 25 juil. 2008, 00:24
par x@v
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]

Posté : 25 juil. 2008, 00:37
par djtec
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

Posté : 25 juil. 2008, 01:01
par x@v
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