mysql - 更改MySQL读取的日期格式

标签 mysql date format

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

批处理文件包含命令ALTER SESSION set nls_date_format='DD-MON-YYYY';来设置日期格式。 MySQL 中是否有等效的方法可以让它按原样接受日期,而无需主要编辑文件?

最佳答案

我认为不修改 SQL 是不可能的。

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

关于mysql - 更改MySQL读取的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404875/

相关文章:

mysql - Drupal 7 DB 是否包含敏感信息?我可以与第 3 方共享转储吗?

javascript - 我如何使用mysql while循环来循环Js

java - Swing JTable 按日期排序

php - 插入 mysqli 不工作

ios - Swift 4 错误的日期和时间

javascript - 格式化日期?

r - 在 xtables 中将零显示为连字符

运行时的 Wpf 本地化不会影响日期格式

javascript - 无法将字符串格式化为日期

c# - DATABASE 和 DATATABLE 之间的重复检查