开发者社区> 问答> 正文

关于otter同步日期类型问题

我用otter把mysql的数据同步到oracle数据是同步过去了但是对于日期类型有些问题,mysql使用的是datatime类型,时间值到秒一级,oracle我用的date,但是同步过去只有年月日,没有时分秒,后来我使用timstamp(0)类型,时分秒有了,但是后面多了000000,请问怎样同步到oracle里面时间保持时分秒一级,而且后面没有零。canal解析的数据我已经看了和mysql的一致。

原提问者GitHub用户 yhxxming

展开
收起
古拉古拉 2023-06-18 10:49:45 69 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    您在使用 otter 将 MySQL 数据库的 datetime 类型数据同步到 Oracle 数据库时,遇到了日期时间格式变化的问题。这个问题可能是由于 MySQL 和 Oracle 对日期时间类型的存储方式不同导致的。

    MySQL 的 datetime 类型存储的是年月日时分秒的完整时间信息,而 Oracle 中的 date 类型只存储年月日的信息,不包含时分秒。因此,如果直接将 MySQL 的 datetime 类型数据同步到 Oracle 的 date 类型字段中,时分秒信息就会丢失。

    为了解决这个问题,您可以考虑将 Oracle 数据库中对应的 date 字段修改为 timestamp 类型(例如 timestamp(0),timestamp(3) 等),以便在存储数据时保留完整的日期时间信息。

    另外,如果在将数据同步到 Oracle 数据库时,时间后面多了 000000 的问题,可能是由于 Oracle 数据库中的 timestamp 类型默认精度为 6 位小数(即毫秒级别),而 MySQL 的 datetime 类型只到秒级别,因此可能会出现精度不对齐的问题。您可以尝试在 otter 中将对应的 timestamp 类型字段的精度设置为 0,以确保精度与 MySQL 的 datetime 类型一致。

    最后,建议在进行数据同步时,尽可能保持源数据库和目标数据库的数据类型一致,以避免出现数据格式转换问题。如果数据类型不同,可以通过在 otter 中进行数据转换来解决。

    2023-06-30 17:32:43
    赞同 展开评论 打赏
  • 这个是oracle gui客户端显示问题

    原回答者GitHub用户 agapple

    2023-06-18 11:09:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载