2016-05-16 5 views
0

У меня есть база данных с несколькими таблицами с использованием полей даты.формат таблицы с форматом даты varchar mysql

Некоторые из них имеют этот формат как varchar(10)dd-mm-yyyy, а другие имеют смесь dd-mm-yyyy и yyyy-mm-dd.

Я попытался изменить формат полей DATE, однако, все в dd-mm-yyyy превращаются в 0000-00-00

Существует правильный способ превратить все VARCHARS как тип даты и только дд-мм-гггг в формате DATE в рассказ со смешанными форматами даты перед изменением типа поля?

date 
-------- 
01-12-2015 *** change this 
05-11-2016 *** this 
01-04-2016 *** and this 
2016-05-11 +++ and keep the ones on this format 
+0

'UPDATE YOUR_TABLE SET COMUMN_NAME = str_to_date (COMUMN_NAME, '% Y-% m-% d');' – Saty

+0

Возможная Дубликат [MySql конвертировать VARCHAR в date] (http://stackoverflow.com/questions/4706289/mysql-convert-varchar-to-date) –

+0

Если вы используете язык программирования, вы можете легко сделать это ... Например (в PHP), ' $ newField = новая дата ('Ym-d', $ oldField) ', а затем обновить запись. – KST

ответ

0
UPDATE `table` 
SET `Fecha`=date_format(str_to_date(`Datefield`, '%d-%m-%Y'), '%Y-%m-%d') 
WHERE date_format(str_to_date(`Datefield`, '%d-%m-%Y'), '%Y-%m-%d') IS NOT NULL 

Это работало должным образом

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