[MYSQL] Stocker une date+heure dans la BDD [De nouveaux probs]

Stocker une date+heure dans la BDD [De nouveaux probs] [MYSQL] - SQL/NoSQL - Programmation

Marsh Posté le 09-03-2002 à 11:45:36    

J'ai défini une table dans laquelle il y a un champ nommé date de time TIMESTAMP. Mais quand j'essaie d'assigner a ce champ (pour un enregistrement donné) une valeur, celle de time(), la valeur de ce champ reste a zero. Pourquoi? Comment suis-je censé stocker les dates dans une BDD? Je précise que j'aimerais pouvoir classer ces enregistrements par date. Merci!  :hello:

 

[jfdsdjhfuetppo]--Message édité par Ace17 le 01-06-2002 à 10:25:43--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 09-03-2002 à 11:45:36   

Reply

Marsh Posté le 09-03-2002 à 11:47:57    

bah essaye de faire plutot 2 champ
un date de type DATE  et un time
dans le date tu stock CURDATE() et dans le time jsais plus c quoi la fonction qui retourne lheure actuel

Reply

Marsh Posté le 09-03-2002 à 11:53:43    

houla, quel gachis de place, le timestamp est bien mieux, mais il faut que ta date soit formaté comme suit: YYYYMMJJHHMMSS sinon il refuse. Et si c'est juste pour stocker l'heure d'insertion dans la db, tu n'as qu'a utilisé la fonction sql NOW() qui mettra automatiquement la bonne valeur bien formatée.

Reply

Marsh Posté le 09-03-2002 à 15:43:00    

mais la fonction time() elle renvoie pas un TIMESTAMP formatté?

Reply

Marsh Posté le 09-03-2002 à 16:22:03    

Ace17 a écrit a écrit :

mais la fonction time() elle renvoie pas un TIMESTAMP formatté?  




suis le conseil de gizmo, il vaut mieux utiliser les fonction MySQL


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 09-03-2002 à 16:28:02    

Le gachis de place c'est de stocker un timestamp?

Reply

Marsh Posté le 09-03-2002 à 16:42:46    

Ace17 a écrit a écrit :

Le gachis de place c'est de stocker un timestamp?  




le fait de stocker en timestamp te permettra de faire des tris par dates sans aucun pb


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 09-03-2002 à 18:57:08    

C'est fait, j'arrive a stocker dans un timestamp mais pour l'afficher je fais comment? Manifestement ca a l'air de poser des problemes avec la fonction date

Reply

Marsh Posté le 09-03-2002 à 19:01:47    

maintenant, utilise la fonction DATE_FORMAT dans ta requete, ainsi:
select DATE_FORMAT(TA_DATE, '%d/%m/%Y';) as TA_DATE from TA_TABLE
 
ceci va te permettre de récupérer ta date au format jj/mm/aaaa


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 11-04-2002 à 11:40:51    

J'ai pas bien compris la.... Mon Timestamp si je veux l'afficher je dois passer aussi par des requetes Mysql??
Tu peux donner quelques lignes de codes que je voie a quoi ca ressemblerait?

Reply

Marsh Posté le 11-04-2002 à 11:40:51   

Reply

Marsh Posté le 11-04-2002 à 12:15:10    

C'est bon j'ai trouvé!
$raw_date = mysql_result($req,$i,"date" );
 
$req_date = mysql_query("SELECT DATE_FORMAT('$raw_date', '%d/%m/%Y a %h:%i';) as 'formatted_date'", $base_id);
 
$date = mysql_result($req_date, 0, "formatted_date" );

Reply

Marsh Posté le 01-06-2002 à 10:25:21    

Encore un petit probleme :D
 
Pourquoi lorsque je mets a jour la valeur d'un enregistrement ca met aussi a jour la valeur de la date (un autre membre de l'enregistrement) ?
 
Je précise que j'avais utilisé "now()" pour définir la valeur de la date a l'enregistrement lors de sa création

 

[jfdsdjhfuetppo]--Message édité par Ace17 le 01-06-2002 à 10:27:05--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-06-2002 à 14:00:28    

tu as mis now() en valeur par défaut lors de la création de la BD ? -> c normal, c'est comme l'id auto-increment, si tu ne stipule pas de date, il update ou insère avec la date actuelle je pense.
Donc vire le de la création de la BD.

Reply

Marsh Posté le 01-06-2002 à 14:15:27    

Ben non, la valeur par défaut c'est null
Mais lorsque l'enregistrement est créé, la valeur de la date est mise a la date actuelle soit "now()"
En fait je voudrais que le contenu de la date soit la date de création de l'enregistrement et non la date du dernier update.
Comment me passer de now()?

Reply

Marsh Posté le 03-06-2002 à 17:30:58    

up please

Reply

Sujets relatifs:

Leave a Replay

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