Il existe d'autres questions où les utilisateurs ont des problèmes avec l'horodatage étant tous des zéros. Je les ai vérifiés et ce n'est pas un doublon.Problème lors de l'insertion de la valeur d'horodatage dans MySQL
Je déclare une table comme ceci:
CREATE TABLE `my_db`.`my_table` (
`time_stamp` timestamp NOT NULL,
`author` varchar() NOT NULL,
`text` text NOT NULL,
`md5` int(11) NOT NULL,
PRIMARY KEY (`time_stamp`)
) ;
J'ai aussi une deuxième table qui aura un horodatage comme clé primaire et ils devraient avoir la même valeur.
Codage en Delphi, j'utilise SELECT CURRENT_TIMESTAMP
qui renvoie quelque chose comme '19/6/2010 4:56:17 AM'
que j'utilise ensuite dans une instruction INSERT. L'INSERT réussit, mais l'horodatage est tous des zéros.
Qu'est-ce que je fais mal?
Voici le code INSERT:
sqlCommand := 'INSERT INTO my_db.my_table(time_stamp, author, text, md5) VALUES ("'
+ timestamp +
'", "mawg", ' +
'"Hello, world"' +
0 +
'");';
Result := DoSQlCommandWithNoResultSet(sqlCommand, AdoConnection);
insertion sera très faible taux, une entrée toutes les quelques semaines ou quelques mois peut-être, alors je suis heureux avec horodatage comme clé primaire. Je garde des «versions» des choses, donc l'horodatage a du sens pour moi. Je prie de penser que c'est un problème d'ADO, bien que je m'attendrais à ce que ADO "passe juste". Je ne vois pas d'autre solution. Dans une console, la sortie est "correcte", mais lorsqu'elle est exécutée via ADO dans Delphi alors elle est erronée
Puis-je spécifier à MySQL comment il doit formater ses dates?
Voyons le code qui effectue l'insertion. – wallyk
Êtes-vous absolument certain de vouloir utiliser le champ d'horodatage? Pensez à utiliser le type de données à la place. Et il est impossible d'avoir '19/6/2010 4:56:17 AM 'de CURRENT_TIMESTAMP –
@ wallyk +1 - fait – Mawg