MySQL: Insérer datetime dans d'autres champ datetime
J'ai une table avec une colonne DATETIME.
Je voudrais SÉLECTIONNEZ cette valeur de type datetime et de l'INSÉRER dans une autre colonne.
Je l'ai fait (remarque: '2011-12-18 13:17:17' est la valeur de l'ancien SÉLECTIONNER m'a donné du champ DATETIME):
UPDATE products SET former_date=2011-12-18 13:17:17 WHERE id=1
et obtenir
1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near '13:17:17 WHERE itemid=1' at line 1
Ok, je comprends que c'est mal de mettre un non cotées de la chaîne de là, mais à l'est de type DATETIME juste une chaîne en premier lieu?
Ce ne j'ai mis là-dedans?
Tout ce que je veux, de manière fiable, le transfert de la valeur existante à un nouveau champ datetime...
EDIT:
La raison pour laquelle je pose, c'est: j'ai cette définition spéciale, DATETIME, et en quelque sorte j'ai pensé qu'il me donne une certaine sécurité et d'autres avantages lors de la manipulation de dates. Maintenant, il semble que c'est simplement un spécialisé de type VARCHAR, pour ainsi dire.
Merci pour vos réponses, il semble que ce soit effectivement l'intention de comportement.
Vous devez vous connecter pour publier un commentaire.
Selon la documentation de MySQL, vous devriez être en mesure de simplement placer cette datetime chaîne de caractères entre guillemets simples, ('YYYY-MM-DD HH:MM:SS') et cela devrait fonctionner. Regardez ici: La Date et l'Heure Littéraux
Donc, dans votre cas, la commande doit être comme suit:
Essayer
Sinon, vous voudrez peut-être regarder à l'aide de la STR_TO_DATE (voir STR_TO_DATE(str,format)) de la fonction.
pour MYSQL essayer cette
à la vérification de la
Si vous n'avez pas besoin de la valeur de type DATETIME dans le reste de votre code, ce serait plus efficace, simple et sécurisé pour utiliser une requête mise à JOUR avec une sous-sélection, quelque chose comme
ou dans le cas où il est dans la même ligne dans une table unique, juste