2015-08-07 3 views
1

Я хочу преобразовать свои данные из "yyyy-mm-ddThh-mm-ss .sssZ "до" yyyy-mm-dd hh-mm-ss "с mySQL.mySQL: конвертировать из "yyyy-mm-ddThh-mm-ss.sssZ" в "yyyy-mm-dd hh-mm-ss"

Я попытался с convert_tz:

mysql> SELECT CONVERT_TZ('2014-09-29T14:00:00.99Z','+00:00','+00:00'); 
+---------------------------------------------------------+ 
| convert_tz('2014-09-29T14:00:00.99Z','+00:00','+00:00') | 
+---------------------------------------------------------+ 
| 2014-09-29 14:00:00          | 
+---------------------------------------------------------+ 

и литыми:

mysql> SELECT CONVERT_TZ(CAST('2014-09-29T14:00:00.99Z' 
     AS datetime),'+00:00','+00:00'); 
+---------------------------------------------------------------------------+ 
| CONVERT_TZ(CAST('2014-09-29T14:00:00.99Z' AS datetime),'+00:00','+00:00') | 
+---------------------------------------------------------------------------+ 
| 2014-09-29 14:00:00              | 
+---------------------------------------------------------------------------+ 

Но каждый раз, когда я получаю предупреждение:

mysql> show warnings; 
Level | Code | Message 
Warning | 1292 | Truncated incorrect datetime value: '2014-09-29T14:00:00.99Z' 

Как я могу получить 2014-09-29 14:00:00, но без предупреждения ?

ответ

2

я, наконец, нашел его!

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

mysql> SELECT STR_TO_DATE('2015-08-07T09:27:54Z','%Y-%m-%dT%TZ'); 
+----------------------------------------------------+ 
| STR_TO_DATE('2015-08-07T09:27:54Z','%Y-%m-%dT%TZ') | 
+----------------------------------------------------+ 
| 2015-08-07 09:27:54        | 
+----------------------------------------------------+ 
1 row in set (0.00 sec) 
0

Пожалуйста, попробуйте SELECT DATE_FORMAT('2014-09-29T14:00:00.99Z', '%Y-%m-%d %T');

+0

Спасибо, формат результата в порядке, но все тот же предупреждение: 'Усеченный неправильно DateTime value' – EloHailwidis