Я собираюсь сделать пару предположений ...
- от SQL 8.0 Вы имеете в виду MySQL 8.0 (
STR_TO_DATE
нестандартно, поэтому может не работать с другими серверами баз данных) - даты в вашем поле
TINYTEXT
хранятся в формате %d/%m/%Y %H:%i:%s
... и для В качестве аргумента я скажу, что поле даты TINYTEXT
называется date_string
.
Я бы создал новый столбец DATE
, а затем UPDATE
со значением с date_string
- с использованием функции STR_TO_DATE
(как вы пытались) - и, если это успешно, удалите исходный столбец и, возможно, переименуйте новый столбец DATE
.
Добавить реальная дата столбец
Я называю это date_date
здесь.
ALTER TABLE `table_test` ADD `date_date` DATE NOT NULL AFTER `date_string`;
ОБНОВЛЕНИЕ реальной даты значением из поля TINYTEXT
(при условии d/m/Y H:i:s
формат)
UPDATE `table_test` SET `date_date` = STR_TO_DATE(`date_string`, '%d/%m/%Y %H:%i:%s');
должно работать, пока формат в столбце TINYTEXT
соответствует формату, установленному в функции STR_TO_DATE
. В любом случае у вас будут оригинальные и преобразованные даты в таблице, поэтому вы можете проверить, что данные выглядят нормально.