2013-10-14 3 views

ответ

2

Вы можете использовать функцию 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) 
+0

будет это заботиться о проблема с часовым поясом также? – user187809

+0

Нет, он будет работать только для ввода UTC. –

1

Вы также можете использовать CAST('2013-09-05T10:10:02Z' AS DATETIME), который не требует определения формата, как и в STR_TO_DATE().

0

Если вы хотите, чтобы заботиться о часовом поясе просто использовать этот запрос, и используйте MySQL TIMEZONE

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) 
Смежные вопросы