現在 ISO 8601 の日付を の形式で2012-10-27T07:30:38+00:00
varchar フィールドにインポートするデータベースを再設計しています。現在のデータベースは MySQL 5.5 サーバーでホストされています。
ドキュメントやさまざまな SO 投稿を検索しても、この目的のために MySQL でどのデータ型を使用する必要があるかについての決定的な答えは見つかりませんでした。最も近い投稿は次のとおりです 。MySQL insert to DATETIME: is it safe to use ISO::8601 format? ある種の回避策を提供しますが、これは望ましいオプションではありません。
MySQL のドキュメント ( http://dev.mysql.com/doc/refman/5.5/en/date-and-time-types.html ) には記載されておらず、公式ドキュメントで見つけることができる唯一のリファレンスはページにあります: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
「最初と 2 番目の引数の可能な値は、いくつかの可能な形式文字列になります (使用される指定子については、DATE_FORMAT() 関数の説明の表を参照してください)。ISO 形式は、ISO 8601 ではなく、ISO 9075 を参照します。」
現在、PostgreSQL のドキュメントでは特に ISO8601 について言及されています ( http://www.postgresql.org/docs/9.2/static/datetime-keywords.htmlおよびhttp://www.postgresql.org/docs/9.2/static/datatype-datetime. html ) 私の質問に私を導く:
MySQL は ISO 8601 を正しくサポートしていますか、それともネイティブ サポートのデータベースを検討する必要がありますか?
- 編集 -
上記のタイム スタンプの例を datetime 列に挿入しようとすると、次のエラーが発生します。
10:55:55 insert into test(date1) values('2012-10-27T07:30:38+00:00') Error Code: 1292. Incorrect datetime value: '2012-10-27T07:30:38+00:00' for column 'date1' at row 1 0.047 sec