更改MySQL读取的日期格式

时间:2009-01-01 11:28:10

标签: mysql date format

我有一个为Oracle数据库创建的批处理文件,我现在正尝试将其导入MySQL数据库。我不得不处理两者之间的各种不一致。该文件的所有日期均为'17 -NOV-1981'而非MySQL期望的'1981-11-17'。

批处理文件具有命令 ALTER SESSION set nls_date_format ='DD-MON-YYYY'; 以设置日期格式。在MySQL中是否有一个等价物来让它接受日期,而不必主要编辑文件?

1 个答案:

答案 0 :(得分:2)

如果不修改SQL,我不相信这是可能的。

可以在insert语句中使用

STR_TO_DATE来转换字符串,或者您可以尝试通过sed管道传输文件并使用正则表达式来查找日期并重新编写它们,例如这样的东西会通过调用str_to_date替换原始转储中的单引号日期,并将生成的转换后的sql导入mysql ......

cat oracledump.sql |  sed "s/'[0-9][0-9]-\(JAN\|FEB\|MAR\|APR\|MAY\|JUN\|JUL\|AUG\|SEP\|OCT\|NOV\|DEC\)-[1-2][0-9][0-9][0-9]'/str_to_date(&, '%d-%b-%Y')/g" | mysql newdb