[MySQL] gestion des dates

gestion des dates [MySQL] - Programmation

Marsh Posté le 01-06-2001 à 10:17:40    

Salut :))
 
comme vous êtes cools, j'abuse :))
 
voilà, malgré la lecture assidûe de la doc php/mysql et la recherche sur différents sites, je ne trouve pas réponse à mon pb, pourtant d'une simplicité enfantine :
 
je veux enregistrer la date du jour dans une table et l'afficher.... simple..
 
seulement, que choisir come type ??? timestamp ? date ? en fonction de ça ? comment afficher ??
 
en fait, comme je suis en phase de test, je me créé quelques enregsitrements à la main dans phpmyadmin.... et si je lui demande "currentdate" ou "now".... j'ai une erreur... sûrement à cause de la longueur de mon champs timestamp...
 
bref, je m'y perd un peu...
 
merci,
elcap :)

Reply

Marsh Posté le 01-06-2001 à 10:17:40   

Reply

Marsh Posté le 01-06-2001 à 10:53:46    

Si c'est juste la date du jour "2001-06-01", alors utilise un champ de Type "DATE".
 
Pour l'affichage ???  
 
Si j'ai bien compris tu veux faire une sélection des enregistrement du jour :
 
"SELECT * FROM table WHERE champ_date=CURDATE()";
 
@+

Reply

Marsh Posté le 01-06-2001 à 10:58:56    

fly lm a écrit a écrit :

Si c'est juste la date du jour "2001-06-01", alors utilise un champ de Type "DATE".
 
Pour l'affichage ???  
 
Si j'ai bien compris tu veux faire une sélection des enregistrement du jour :
 
"SELECT * FROM table WHERE champ_date=CURDATE()";
 
@+




 
oui, juste la date... après y'a moyen de formater ça correctement (format "français" ) ?
 
alors, partons sur un champs de type date.... en fait, c'est pour insérer, via phpmyadmin, puis par code, la date du jour....
 
et aussi pour afficher la date se trouvant dans la table, avec echo par ex...
 
elcap :)

Reply

Marsh Posté le 01-06-2001 à 11:29:30    

Ouhai, y a moyen :
 
exemple :
 
$query="SELECT date, DATE_FORMAT(date,'%d-%m-%Y') FROM table";
$result = mysql_db_query ($cfgBase,$query) or die ("Requete SQL invalide" );
 
WHILE( $row=mysql_fetch_row($result) )
{
 echo $row[1]."<br>";
}
 
A l'affichage, ta date est bien formaté en "jour-mois-Année"

Reply

Marsh Posté le 01-06-2001 à 11:31:06    

Tu peux aussi formater ta date avec PHP (pour l'affichage), d'ailleurs c'est peut-être plus rapide !!!

 

[edit]--Message édité par fly lm--[/edit]

Reply

Marsh Posté le 01-06-2001 à 11:42:17    

bon ben merci, je regarde dans la doc php :)
 
merci bcp :)
 
elcap :)

Reply

Marsh Posté le 01-06-2001 à 11:54:17    

En PHP, voila :
 
$query="SELECT date FROM table";
$result = mysql_db_query ($cfgbase,$query) or die ("Requete SQL invalide" );
 
WHILE( $row=mysql_fetch_object($result) )
{
        $date=explode("-",$row->date);
        /* Formatage de la date*/
        echo "$date[2]-$date[1]-$date[0]<br>";
}

Reply

Marsh Posté le 01-06-2001 à 11:57:59    

Je ne suis pas un spécialiste de MySQL, mais si le type timestamp est identique aux timestamp SQL Server - Sybase, alors c'est un type spécial qui permet d'avoir un marqueur unique sur chaque enregistrement d'une table.
 
Il n'est jamais renseigné manuellement, et permet de retrouver la date d'une ligne en cas de souci (ou même si tout va bien). Mais bon, vu la tronche du truc, c'est mieux de s'en servir uniquement en cas de problème.
 
exemple : 0x000100000c174967

Reply

Marsh Posté le 01-06-2001 à 12:21:44    

Bha sous MySQL, un champ de Type TIMESTAMP(M) stocke une date et un horaire sous la forme :
 
si M=8 : YYYYMMDD (année mois jour)
si M=14 : YYYYMMDDHHMMSS (année mois jour heure minute seconde)
 
Sur la Doc il disent que le Type TIMESTAMP stocke un horaire ou une date sous la forme d'un nombre de secondes depuis le premier janvier 1970 (c'est le timestamp d'unix). Je suppose qu'il s'agit de la méthode interne à MySQL de stockage, car à l'affichage le champ TIMESTAMP n'est pas un nombre de seconde. D'ailleurs, lorsque tu essaies d'inserrer dans un champ TIMESTAMP la valeur en seconde du Timestamp unix, cela ne marche pas.
 
Elcpa aurait pu utiliser TIMESTAMP pour ses dates.

Reply

Marsh Posté le 01-06-2001 à 14:34:46    

oui je connais klk1 qui utilise timestamp.... mais le champs DATe me convient... on peut s'en servir pour faire des calculs sur les dates ? (j'en ai pas besoin, mais sait-on jamais ;-)
 
Autrement, merci fly lm pour la requête toute faite :) mais tu aurais pu te contenter de me conseiller d'utiliser "explode" :)
 
tu aurais fait un mauvais prof  ;)  ;)  ;)  ;)  ;)  ;)  ;)  ;)  
 
merci en tout cas  :D  :D  :D

Reply

Marsh Posté le 01-06-2001 à 14:34:46   

Reply

Marsh Posté le 01-06-2001 à 16:31:06    

encore une question :
 
$resultconfig = mysql_query("SELECT login, config FROM membres WHERE id_mem = $id_mem'", $db);
 
ça ne marche évidemment pas :):):):)
 
comment faire, syntaxiquement parlant, pour caser ma variable $id_mem dans ma requête, sachant que cette variable vient de la page "appelante" ???
 
Elcap :)

Reply

Marsh Posté le 01-06-2001 à 19:02:31    

up :)

Reply

Marsh Posté le 01-06-2001 à 19:13:00    

ça marche ça normalement ... par contre il y a un ' en trop dans ta requête après $id_mem
 
soit where id_mem = $id_mem pour un entier
soit where id_mem = '$id_mem' pour le reste

Reply

Marsh Posté le 01-06-2001 à 20:58:24    

c'est ça la bonne solution :
where id_mem = '$id_mem'  
 
merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed