【问题标题】:How to convert Sybase ASE smalldatetime/datetime/bigdatetime into a standard format如何将 Sybase ASE smalldatetime/datetime/bigdatetime 转换为标准格式
【发布时间】:2020-06-19 18:20:13
【问题描述】:

我需要将大量数据(100Ms 行)从 Sybase 数据库移动到 MySQL 数据库。

我遇到的一个问题是将 smalldatetime、datetime 和 bigdatetime 类型的列转换为 MySQL 容易理解的格式。

经过一番努力,几乎放弃寻找不涉及对日期时间数据进行 Perl 按摩的解决方案后,我找到了一个非常可接受的解决方案。

它不符合完整的ISO 8601 standard,,但它非常接近,就我的目的而言,它工作得很好。

【问题讨论】:

    标签: mysql perl datetime sybase sap-ase


    【解决方案1】:

    答案是我发现了一个秘密(至少据我所知没有记录)Sybase convert 风格。 样式为 140,无论日期时间格式如何,它都会产生这种类型的格式输出:

    select convert(char, convert(smalldatetime, getdate()), 140);
     2020-03-06 21:08:00.000000
    
    select convert(char, convert(datetime, getdate()), 140);
     2020-03-06 21:08:21.173000
    
    select convert(char, convert(bigdatetime, getdate()), 140);
     2020-03-06 21:08:30.532000
    
    select convert(char, convert(bigdatetime, "2020-03-06 21:08:30.123456"), 140);
     2020-03-06 21:08:30.123456
    

    【讨论】:

    • 仅用于信息样式 109(已记录)为您提供相同的结果。
    • @RichCampbell,除非我读错了文档,否则 109 会给你: mon dd yyyy hh:mm:ss AM (or PM) 这是完全不同的,一方面没有微秒.见infocenter.sybase.com/help/index.jsp?topic=/…
    • 你说得对,我可以发誓今天早上我已经复制了你的输出,但我不能再这样做了,所以我同意你的无证 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 2012-10-17
    相关资源
    最近更新 更多