12

この形式の日付を持つテーブル(varchar)に列があります 2013-09-05T10:10:02Z

更新クエリを使用して、これを日時形式に変換して別の列に保存するにはどうすればよいですか?

4

4 に答える 4

15

STR_TO_DATE次の関数を使用できます。

UPDATE table1 SET col2 = STR_TO_DATE(col1,'%Y-%m-%dT%TZ')

例:

mysql> select STR_TO_DATE('2013-09-05T10:10:02Z','%Y-%m-%dT%TZ');
+----------------------------------------------------+
| STR_TO_DATE('2013-09-05T10:10:02Z','%Y-%m-%dT%TZ') |
+----------------------------------------------------+
| 2013-09-05 10:10:02                                |
+----------------------------------------------------+
1 row in set (0.00 sec)
于 2013-10-14T09:43:40.913 に答える
3

タイムゾーンを管理したい場合は、このクエリを使用し、mysql タイムゾーンを使用してください。

mysql> select CONVERT_TZ("2013-09-05T10:10:02Z", "+00:00", @@session.time_zone);

+-------------------------------------------------------------------+
| CONVERT_TZ("2013-09-05T10:10:02Z", "+00:00", @@session.time_zone) |
+-------------------------------------------------------------------+
| 2013-09-05 12:10:02                                               |
+-------------------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

または他のタイムゾーン

mysql> select CONVERT_TZ("2013-09-05T10:10:02Z", "+00:00", "+03:00");
+--------------------------------------------------------+
| CONVERT_TZ("2013-09-05T10:10:02Z", "+00:00", "+03:00") |
+--------------------------------------------------------+
| 2013-09-05 13:10:02                                    |
+--------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
于 2017-11-03T12:32:27.190 に答える