2014-02-20 3 views
0

Я пытаюсь обновить столбец в таблице на основе данных (которые постоянно обновляются) во временной таблице (через импорт csv). Датой во временной таблице является формат VARCHAR («2/20/2014 10:29:25 AM»), а дата в таблице, которую я хочу обновить, имеет тип DATETIME.Как преобразовать дату и обновить объединенную таблицу

Я не уверен, как правильно присоединиться к этим двум таблицам, чтобы обновить даты в постоянной таблице на основе текущей даты, отображаемой в таблице temp ... используя product_sku (в обеих таблицах) как поле объединения.

Вот что я пробовал, но продолжаю получать ошибку SQL ('# 1064 - У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, используемого рядом с' FROM. ..)

Update t0 
set t0.product_available_date = 
       (SELECT STR_TO_DATE(`t1.product_available_date`, 
            '%c/%e/%Y %H:%i')) 
       FROM cpg5443_virtuemart_products as t0 
       join cpg5443_virtuemart_products_temp as t1 
       on t0.product_sku = t1.product_sku 
       Where t0.product_sku='002-765-AS' 

Вы видите какие-либо вопиющие ошибки и можете ли вы посоветовать, как я могу исправить? В конце концов, мне нужно, чтобы в заявлении, где говорилось «где t0.product_sku = t1.product_sku», надеется, что этот столбец обновится для каждой записи, основанной на дате в таблице temp. Пока что я просто тестирую обновление с помощью одного product_sku.

ответ

0

Похоже, что вы не указали круглые скобки после «002-765-AS». Вы отправили весь код? Также у вас есть дополнительные скобки после формата даты.

Попробуйте это:

update cpg5443_virtuemart_products as t0 
inner join cpg5443_virtuemart_products_temp t1 
on t0.product_sku = t1.product_sku 
set t0.product_available_date = str_to_date (t1.product_available_date, 
               '%c/%e/%Y %H:%i:%s') 
where t0.product_sku = '002-765-AS' 
+0

Что-то еще не хватает, я думаю (я теперь получаю ошибку, которая говорит «# 1146 - Таблица [account_dbname] .t0 не существует» Да, у меня есть. отправил весь код, который я пробовал. Нужен ли мне дополнительный «Выбор»? Любая идея, что мне не хватает? –

+0

Ну, ошибка говорит о том, что таблица не существует. Убедитесь, что вы выполняете запрос в правильном базы данных, то есть где эта таблица t0 существует. –

+0

Также читайте это: http://stackoverflow.com/q/6342201/3248346 –

Смежные вопросы