Преобразование столбца varchar в date в mysql на уровне базы данных
у меня одна колонка date1
что это тип varchar тип
Я хочу, чтобы эта колонка date
тип.
Я попытался изменить поле, но вся дата преобразуется в 0000-00-00
.
формат:dd-mm-yyyy
а в тип varchar.
как я могу преобразовать тот же формат даты, но с форматом даты, используя sql-запросы или аналогичные, но на уровне базы данных ?
3 ответов
UPDATE `table`
SET `column` = str_to_date( `column`, '%d-%m-%Y' );
подробнее о STR_TO_DATE
другие ответы здесь рискованны, потому что, если они пойдут не так, вы потеряете свои данные. Более безопасный способ сделать это-создать новое поле в базе данных в формате даты (или DATETIME, если вам также нужно время), а затем запустить запрос типа
UPDATE `table` SET `my_new_date_field` = STR_TO_DATE( `my_old_data_field`, '%d/%m/%Y');
таким образом, если %d/%m/%Y
немного не так, вы не потеряете свои данные.
Как только вы будете счастливы, вы можете удалить старое поле данных и переименовать новое.
использовать STR_TO_DATE функция MySQL
сначала вам нужно будет обновить значение в формате даты.
UPDATE `tbl` SET `date1` = STR_TO_DATE(`date1`, '%d-%m-%Y') WHERE 1=1
затем преобразуйте поле в date.
самое главное не забудьте вставить дату в формате Y-m-d, после этого.