mysql插入的格式日期

蚱蜢

我正在使用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-类型DATEALTER 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章