2011-12-18 193 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