Discussion:
php / champ mysql
(trop ancien pour répondre)
Anthony
2007-09-29 14:31:50 UTC
Permalink
bon, je suis légèrement HS mais je bosse sur un script php pour
rapatrier des infos en provenance d'une base de données où je n'ai pas
la main ( export csv ) et me retrouve avec un champ dont j'ignore le type.

j'ai un champ qui ressemble à une datetime mais ... un peu plus complexe.

Exemple : 2007-09-14 13:38:45.957718

Je voudrais réinsérer ce dernier dans mysql ( sans faire un varchar )
mais je n'arrive pas a trouver ce a quoi ça correspond...

quelqu'un a une idée ?

merci,

Anthony
P'tit Marcel
2007-09-29 21:13:26 UTC
Permalink
Post by Anthony
j'ai un champ qui ressemble à une datetime mais ... un peu plus complexe.
Exemple : 2007-09-14 13:38:45.957718
Je voudrais réinsérer ce dernier dans mysql ( sans faire un varchar )
mais je n'arrive pas a trouver ce a quoi ça correspond...
c'est visiblement un expression de date et d'heure incluant des
microsecondes. Si le champ MySQL est défini comme datetime, la partie
décimale des secondes sera perdue ("microseconds cannot be stored into a
column of any temporal data type").

Pour le stocker dans MySQL en employant php, je ne vois pas de
difficulté particulière. Je crois qu'un simple :

$champ = '2007-09-14 13:38:45.957718';
mysql_query(
"update latable set ladate ='$champ' where lacle = '$cle'")
or die('pb');

devrait marcher.
sinon, tu peux supprimer la partie décimale par un
$pos = strpos($champ, '.');
if($pos) $champ = substr($champ, 0, $pos);


eça
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
Anthony
2007-10-01 06:37:25 UTC
Permalink
Post by P'tit Marcel
c'est visiblement un expression de date et d'heure incluant des
microsecondes. Si le champ MySQL est défini comme datetime, la partie
décimale des secondes sera perdue ("microseconds cannot be stored into a
column of any temporal data type").
en fait je me doutais bien qu'il s'agissait de micros secondes.
donc si j'ai bien compris... je ne peux récupérer ces micro secondes
lors d'une ré-importation.

et là un truc m'échappe : pourquoi conserver une partie d'un champ qu'on
ne peut ré-exploiter ( par exemple récupérer dans une autre base ) ?

merci,

anthony
P'tit Marcel
2007-10-01 10:49:47 UTC
Permalink
Post by Anthony
Post by P'tit Marcel
c'est visiblement un expression de date et d'heure incluant des
microsecondes. Si le champ MySQL est défini comme datetime, la partie
décimale des secondes sera perdue ("microseconds cannot be stored into a
column of any temporal data type").
en fait je me doutais bien qu'il s'agissait de micros secondes.
donc si j'ai bien compris... je ne peux récupérer ces micro secondes
lors d'une ré-importation.
et là un truc m'échappe : pourquoi conserver une partie d'un champ qu'on
ne peut ré-exploiter ( par exemple récupérer dans une autre base ) ?
Réponse basique: on peut toujours stocker une date avec microsecondes
dans un champ varchar :-)

Sinon, je suppose que mysql prévoit à terme de gérer les microsecondes,
mais qu'actuellement cela n'est pas fait parce que le moteur de calcul
n'est pas compatible (fonctions mysql ne pouvant pas prendre en compte
les microsecondes, aléa des microsecondes que l'on trouverait dans un
timestamp automatique, etc.)

Tout cela n'étant plus vraiment en rapport avec le langage php, je
*téléporte* vers le forum kivabien: fr.comp.applications.sgbd


a+
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
Mickael Wolff
2007-09-29 21:13:26 UTC
Permalink
Post by Anthony
j'ai un champ qui ressemble à une datetime mais ... un peu plus complexe.
Exemple : 2007-09-14 13:38:45.957718
En quoi est-il plus complexe ? Parce qu'il indique des microsecondes ?
Du moins, c'est ce qui me vient logiquement à l'esprit.
Post by Anthony
Je voudrais réinsérer ce dernier dans mysql ( sans faire un varchar )
mais je n'arrive pas a trouver ce a quoi ça correspond...
Datetime ?
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Y a personne
2007-09-29 21:13:26 UTC
Permalink
Post by Anthony
bon, je suis légèrement HS mais je bosse sur un script php pour
rapatrier des infos en provenance d'une base de données où je n'ai pas
la main ( export csv ) et me retrouve avec un champ dont j'ignore le type.
j'ai un champ qui ressemble à une datetime mais ... un peu plus complexe.
Exemple : 2007-09-14 13:38:45.957718
Je voudrais réinsérer ce dernier dans mysql ( sans faire un varchar )
mais je n'arrive pas a trouver ce a quoi ça correspond...
quelqu'un a une idée ?
merci,
Anthony
Se sont des microsecondes :

http://dev.mysql.com/doc/refman/4.1/en/datetime.html
Continuer la lecture sur narkive:
Loading...