2012-02-13 28 views
8

Tôi có tập lệnh tải MySQL gần như hoạt động, nó hoàn hảo ngoại trừ các cột ngày tháng không có định dạng thân thiện với MySql.Ngày tải MySQL theo định dạng dd/mm/yyyy

 
load data infile '/Users/pfarrell/sandbox/waybase/folklore/Titles_1976.csv' 
into table fix76 
fields terminated by ',' 
enclosed by '"' 
ignore 1 lines 
( patentId, USPatentNum, title, grantDate, filedDate) 

Vấn đề là ngày của tôi ở định dạng dd/mm/yyyy. Có vẻ như hàm str_to_date là những gì tôi muốn, nhưng tôi không thể tìm ra cách sử dụng nó trong lệnh tải.
Tôi đang hình dung một cái gì đó như:

 
    grantDate = STR_TO_DATE(something, '%m/%d/%Y'), 

nhưng điều đó không làm việc.

+0

tôi đã giải quyết được tình trạng này bằng cách nhập ngày tháng trong một cột chuỗi helper, và bạt cập nhật bảng thêm ngày với công thức chuyển đổi. Đây không phải là rất tốt đẹp để xem, nhưng hoạt động. Hãy xem nếu ai đó có một cách tốt hơn ... – perissf

+0

Bạn đã thử thay đổi ngôn ngữ cho kết nối của bạn để xem điều đó có hiệu quả không? –

Trả lời

7

Bạn có thể tải chuỗi ngày vào biến do người dùng xác định và sau đó sử dụng STR_TO_DATE(@date, '%m/%d/%Y') để chuyển đổi chúng thành ngày của MySQL.

Hãy thử điều này:

load data infile '/Users/pfarrell/sandbox/waybase/folklore/Titles_1976.csv' 
into table fix76 
fields terminated by ',' 
enclosed by '"' 
ignore 1 lines 
( patentId, USPatentNum, title, @grantDate, @filedDate) 
set grantDate = STR_TO_DATE(@grantDate, '%m/%d/%Y'), 
filedDate = STR_TO_DATE(@filedDate, '%m/%d/%Y') 
+0

Cảm ơn, điều đó hoạt động tốt. – fishtoprecords

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