Копирование столбца String с содержимым даты в столбец DateTime в MySQL - PullRequest
1 голос
/ 12 марта 2019

У меня есть таблица со столбцом с названием sales_date. Это тип varchar. Содержит даты в следующем формате: «2017-08-19T16: 29: 11 + 00: 00».

Я создал новый столбец с именем sales_date_type_datetime типа DateTime. Я хотел бы взять все данные в sales_date, преобразовать их в тип DateTime и скопировать их в новый столбец.

Я пробовал эти sql stmts, но оба были неудачными

// Error Code: 1292. Incorrect datetime value: '2017-08-15T13:32:00+00:00' for column 'salse_date_type_datetime'
UPDATE sales_table 
SET   sales_date_type_datetime = sales_date;

// Error Code: 1411. Incorrect datetime value: '' for function str_to_date
UPDATE sales_date 
SET    sales_date_type_datetime = STR_TO_DATE(sales_date, '%Y-%m-%d %H:%i:%s');

Любая помощь или руководство будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Попробуйте ниже -

DEMO

UPDATE sales_date 
SET    sales_date_type_datetime = STR_TO_DATE(sales_date, '%Y-%m-%dT%H:%i:%s')
0 голосов
/ 13 марта 2019

Ответ fa06 должен был сработать, но по какой-то причине он не сработал для меня.Возможно, это произошло из-за моей версии mySQL (5.7.12)

Этот SQL, приведенный ниже, сработал для меня

   UPDATE sales_table
   SET sales_date_type_datetime =  cast(SUBSTRING(sales_date, 1, 19) as datetime);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...