2011-11-28 11 views
5

OracleのTIMESTAMP WITH TIME ZONEに相当するMySQLはありますか?OracleのTIMESTAMP WITH TIME ZONEに相当するMySQLはありますか?

そのデータ型を持ついくつかの列を持つOracleテーブルをMySQLテーブルにマップする必要がありますが、一部のMySQL関数を使用せずにこれを行う簡単な方法が見つからないようです。

ありがとうございます。

+0

短い答えはいいと思います。このようなデータ型を将来のバージョンのMariaDB(MySQLフォーク)に追加する計画はありますが、スケジュールは考えていません。 –

+0

MariaDB 5.6の計画:http://kb.askmonty.org/ja/plans-for-56 –

答えて

2

いいえ、データを2つの列に分割する必要があります.1つはdatetime、もう1つはタイムゾーン情報を保持する必要があります。しかし、後者のフィールドには、Oracleに格納されているものに依存します。TIMESTAMP WITH TIME ZONEデータ型には、TZオフセットと(オプションで)タイムゾーン領域を含めることができます。当然のことながら、後者は、日付的な意味での正確さを期すための要件ですが、IIRC Oracleでは、このデータが移入されることはありません。いくつかのMySQLに頼ることなく

は、MySQLがデータ型を持っていないので、それを処理するためのMySQL関数を記述することは非常に難しいでしょう

を機能 - 互換性のあるMySQLを作成するために、ずっと簡単ですデータ型がサポートされているOracleの表現。あなたが実際に持っているデータを調べ、MySQLでどのように表現するかを決めるだけで済みます。これは、TZと一緒にUTCで別の列に格納し、convert_tz関数(常にUTCから)で選択して変換することを意味します。

1

MySQLは常にtimestamps as utcを格納します。日付は常にタイムゾーン情報なしで保存されます。

now()の値を別のtimezonesに戻すようにmysqlを設定できます。

現在のオフセットを保存するには、これをいくつかの列に追加する必要があります。

関連する問題