MySQL插入语句中的Oracle到MySQL时间戳转换

问题描述 投票:1回答:3

我已经从Oracle 11g实例导出数据作为插入语句。他们需要进入MySQL 5.5实例。遇到TIMESTAMP转换问题;我知道我可以在MySQL中使用TO_TIMESTAMP函数内联INSERT语句;但是,我不确定要使用的正确标志。如下所示,按线性顺序,是:Oracle时间戳语句和我在MySQL兼容语句中的尝试。显然它不起作用(因为MySQL声明存在语法错误)。

甲骨文:

TO_TIMESTAMP('12/22/2015 5:08:59.245837 PM','fmMMfm/fmDDfm/YYYY fmHH12fm:MI:SS.FF AM')

MySQL的:

TO_TIMESTAMP('12/22/2015 5:08:59.245837 PM','%m/%d/%Y %h:%i:%s')

除了微秒和AM / PM的标志之外我还缺少什么?

mysql oracle format timestamp database-migration
3个回答
0
投票

假设您从SQL Developer导出。

在导出整个数据之前,请使用以下命令更改日期时间选择查询:

TO_CHAR(COLUMN_NAME, 'YYYY-MM-DD HH24:MI:SS') as XXX

它将使用MySQL格式生成日期时间。因此,当您获得插入查询时,您可以直接在MySQL运行


0
投票

对于MYSQL:STR_TO_DATE('2015年2月6日5:20:43.000000 AM','%c /%d /%Y%l:%i:%s。%f%p')


0
投票

如果你想让oracle的日期和时间戳与MySql兼容,只需改变你的会话

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF'

改变会话会更好

© www.soinside.com 2019 - 2024. All rights reserved.