MySQL是否等同于Oracle的TIMESTAMP WITH TIME ZONE?

ktu*_*nho 5 mysql timezone oracle10g

MySQL是否等同于Oracle的TIMESTAMP WITH TIME ZONE?

我需要将一个具有该数据类型的列的Oracle表映射到MySQL表中,但我似乎无法找到一种简单的方法来执行此操作而不需要使用某些MySQL函数.

谢谢和最好的问候.

sym*_*ean 2

不,您需要将数据分成两列,一列是日期时间,另一列保存时区信息。但是您在后一个字段中输入的内容取决于您在 Oracle 中存储的内容 - 带时区的 TIMESTAMP 数据类型可以包含 TZ 偏移量和(可选)时区区域。显然,后者是日期时间在语义上正确的要求,但 IIRC Oracle 并不强制填充此数据。

无需借助某些 MySQL 函数

由于 MySQL 没有数据类型,因此编写 MySQL 函数来处理它会非常困难 - 在支持该数据类型的 Oracle 中创建 MySQL 兼容表示要简单得多。您只需要计算出您实际获得的数据并决定如何在 MySQL 中表示它。按照惯例,这意味着将其与 TZ 一起存储在 UTC 中的单独列中,然后在选择时使用 Convert_tz 函数进行转换(始终来自 UTC)