如何将 Sybase ASE smalldatetime/datetime/bigdatetime 转换为标准格式

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

【参考方案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=/… 你说得对,我可以发誓今天早上我已经复制了你的输出,但我不能再这样做了,所以我同意你的无证 :)

以上是关于如何将 Sybase ASE smalldatetime/datetime/bigdatetime 转换为标准格式的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Kafka Connect for Sybase ASE 数据库实现变更数据捕获 (CDC)?

如何从 sybase-ase db 创建递归路径?

sybase ase 怎样修改表的所有者

如何在 SAP ASE Sybase 16 中从具有外键的表中删除行

将 Sybase ASE 12.5.4 与带有 JRuby 的 jTDS 驱动程序一起使用

linux下如何启动和停止sybase的服务