MySQL:将datetime插入其他datetime字段

MySQL:将datetime插入其他datetime字段,mysql,sql,datetime,insert,Mysql,Sql,Datetime,Insert,我有一个带有日期时间列的表。 我想选择此datetime值并将其插入另一列 我这样做了(注意:“2011-12-18 13:17:17”是前一个SELECT在DATETIME字段中给我的值): 得到 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

我有一个带有日期时间列的表。 我想选择此datetime值并将其插入另一列

我这样做了(注意:“2011-12-18 13:17:17”是前一个SELECT在DATETIME字段中给我的值):

得到

    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
好的,我理解在这里放一个不带引号的字符串是错误的,但是DATETIME一开始只是一个字符串吗? 我在里面放什么? 我只想可靠地将现有值转移到新的datetime字段

编辑:

我问这个问题的原因是:我有一个特殊的定义,DATETIME,不知何故,我认为它在处理日期时给了我一些安全性和其他优势。现在,可以说它只是一个专门的VARCHAR

谢谢你的回答,看来这确实是你想要的行为

试试看

    UPDATE products SET former_date=20111218131717 WHERE id=1

或者,您可能想看看如何使用STR_to_DATE(请参阅)函数。

根据MySQL文档,您应该能够将datetime字符串括在单引号中('YYYY-MM-DD HH:MM:SS'),它应该可以工作。看这里:

因此,在您的情况下,命令应如下所示:

UPDATE products SET former_date='2011-12-18 13:17:17' WHERE id=1
对于MYSQL,试试这个

在表1(
myDatetimeField
)中插入值(STR_至_日期('12-01-2014 00:00:00','%m-%d-%Y%H:%i:%s')

核实-

从表1中选择*
输出-日期时间=2014-12-01 00:00:00


如果在代码的其余部分不需要DATETIME值,那么使用带有子选择的更新查询(如

UPDATE products SET t=(SELECT f FROM products WHERE id=17) WHERE id=42;
或者如果它在一个表的同一行中,只需

UPDATE products SET t=f WHERE id=42;

行得通,谢谢。我想当涉及到关系数据库时,我对对象考虑得太多了。。。
UPDATE products SET t=f WHERE id=42;