Даты хранятся в виде дат, возможно, у вас есть строки.
Если они уже являются датами, просто используйте DATE_FORMAT
при необходимости.
Если они являются строками, лучшим вариантом будетна измените их на фактические даты и сохраните значение даты в новом столбце.В противном случае, в будущем у вас останется много проблем, как заметил Тони (+1 Тони!).
Затем вы можете заполнить его STR_TO_DATE
, например
update tbl set new_date_field =
select STR_TO_DATE(string_date_field,'%y-%m-%d') ` # if string_date_field is '2011-01-01'
WHERE string_date_field RLIKE "^[0-9]{2}-";
Если у вас есть реальная дата, вы можете отобразить ее с помощью DATE_FORMAT(date_field, '%y-%m-%d')
Единственный другой вариант, если вы не можете добавить поле, - это манипулирование строками, т.е.
Update table set date_field =<br>
substr(string_date_field,7,2) + '-' + substr(string_date_field,3,2) + '-' + substr(string_date_field,0,2)
WHERE string_date_field RLIKE "^[0-9]{2}-";
даже так я бы порекомендовал новое поле.
Примечание: если вам нужно сделать это еще большим количеством шагов, скажите, что вы не можете изменить заполнение поля «дата как строка» сразу, как могли бытакже добавьте триггер пост-вставки / обновления поста (который теперь поддерживает mySQL), чтобы выполнить преобразование (из строкового поля в поле реальной даты) в будущем.