2011-12-18 50 views
30

Tôi có bảng có cột DATETIME. Tôi muốn SELECT giá trị datetime này và INSERT nó vào một cột khác.MySQL: Chèn ngày giờ vào trường ngày giờ khác

Tôi đã làm điều này (lưu ý: '2011/12/18 13:17:17' là giá trị cũ CHỌN đã cho tôi từ lĩnh vực DATETIME):

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

và nhận

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, tôi hiểu sai khi đặt một chuỗi không được trích dẫn trong đó, nhưng DATETIME chỉ là một chuỗi ở địa điểm đầu tiên? Điều gì do Tôi đặt trong đó? Tất cả tôi muốn là đáng tin cậy chuyển giá trị hiện có sang một lĩnh vực datetime mới ...

EDIT:

Lý do tôi hỏi là: Tôi có nét đặc biệt này, DATETIME, và bằng cách nào đó tôi nghĩ rằng nó mang lại cho tôi một số bảo mật và lợi thế khác khi xử lý ngày tháng. Bây giờ có vẻ như nó chỉ đơn giản là một VARCHAR chuyên ngành, vì vậy để nói chuyện.

Cảm ơn câu trả lời của bạn, có vẻ như đây thực sự là hành vi dự định.

Trả lời

56

Theo tài liệu MySQL, bạn sẽ có thể chỉ kèm theo chuỗi ngày giờ đó trong dấu nháy đơn, ('YYYY-MM-DD HH: MM: SS') và nó sẽ hoạt động. Nhìn đây: Date and Time Literals

+0

Hoạt động, cảm ơn. Tôi đoán tôi nghĩ quá nhiều trong các đối tượng khi nói đến cơ sở dữ liệu quan hệ ... – marimba

7

Hãy thử

UPDATE products SET former_date=20111218131717 WHERE id=1 

Ngoài ra, bạn có thể muốn xem xét việc sử dụng STR_TO_DATE (xem STR_TO_DATE(str,format)) chức năng.

7

cho MYSQL thử này INSERT

VÀO table1 (myDatetimeField) VALUES (STR_TO_DATE ('12 -01-2014 00:00:00' , '% m →% d-% Y% H:% i:% s');

verification-

select * from table1
datetime output- = 2014/12/01 00:00:00

Các vấn đề liên quan