2011-12-18 195 views
30

我有一个DATETIME列的表。 我想选择这个日期时间值并将其插入到另一列。MySQL:插入日期时间到其他日期时间字段

我这样做(注: '2011-12-18 13点一十七分17秒' 是前者SELECT给我从DATETIME字段中的值):

UPDATE products SET former_date=2011-12-18 13:17:17 WHERE id=1 

,并得到

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,可以这么说。

感谢您的回答,这似乎确实是预期的行为。

回答

56

根据MySQL文档,您应该能够将该日期时间字符串放在单引号('YYYY-MM-DD HH:MM:SS')中,它应该可以工作。看看这里: Date and Time Literals

+0

作品,谢谢。关于关系数据库,我想对象太多了...... – marimba 2011-12-18 13:55:56

7

尝试

UPDATE products SET former_date=20111218131717 WHERE id=1 

或者,你可能想看看在使用STR_TO_DATE(见STR_TO_DATE(str,format))功能。

7

对于MySQL试试这个

INSERT INTO表1(myDatetimeField)VALUES(STR_TO_DATE('12 -01-2014 00:00:00' ,'%间%D-% Y%H:%I:%S');

verification-

SELECT * FROM表1
输出 - 日期时间= 2014年12月1日00:00:00