MySQL如何以mm/dd/yyyy格式加载日期?

12

我有一个MySQL负载脚本几乎可以正常工作,但日期列不符合MySQL的格式。

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)

问题在于我的日期是以mm/dd/yyyy格式表示的。看起来str_to_date函数是我想要的,但我不知道如何在负载命令中使用它。
我设想的语句是:

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

但这样并不能起作用。


我已经通过在辅助字符串列中导入日期,然后使用转换公式更新表格来解决了这种情况。虽然不太美观,但是能够工作。看看是否有更好的方法... - perissf
你尝试更改连接区域设置以查看是否可以解决问题了吗? - Rowland Shaw
1个回答

10
你可以将日期字符串加载到用户定义的变量中,然后使用STR_TO_DATE(@date, '%m/%d/%Y')将它们转换为MySQL日期。

尝试这个:

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')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接