我正在使用LOAD DATA INFILE导入一个csv文件,文件的日期格式为29/11/2010
,数据库格式为2010-11-29
,我可以用什么来格式化查询中的日期?
我已经尝试过str_to_date:
SET date_start = STR_TO_DATE(@from_date,'%Y-%m-%d'),
但这只插入 0000-00-00
MySQL 4.x
LOAD DATA
将尝试按原样插入您的日期。它不了解格式,在通常情况下,您无法对字段进行某些后处理(嗯,与LOAD DATA
语法本身允许的某些格式不同),并且您无法通过SET
类似in的关键字来调整值MySQL 5.x
相反,您可以执行以下步骤:
VARCHAR
。命名为record_date
LOAD DATA
查询。它将您的日期加载到record_date
列中temp_date
-类型DATE
:ALTER TABLE t ADD temp_date DATE
temp_date
专栏:UPDATE t SET temp_date = STR_TO_DATE(record_date, '%d/%m/%Y')
VARCHAR
日期列:ALTER TABLE t DROP record_date
DATE
类型的列重命名为原始列:ALTER TABLE t CHANGE temp_date record_date DATE
结果,您会将日期作为DATE
日期类型加载到表中。替换record_date
为原始列的名称。
MySQL 5.x
您可以使用SET
关键字和上述本地替换过程。所以做:
LOAD DATA INFILE 'file.csv'
INTO TABLE t
(@date)
SET record_date=STR_TO_DATE(@date, '%d/%m/%Y')
上面的-sample用于一列,您需要添加其他列(如果存在)。日期列名称也是record_date
-因此也将其更改为实际名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句