ilostmyid2 Ответов: 1

Как изменить тип поля в mysql и сохранить его значение?


У меня есть таблица в базе данных MySQL, которая содержит поле типа string(varchar (20)). Его содержание имеет тип времени, например 23: 30, 14:00 и т. д. Хотя его длина составляет 20, требуется всего 5 символов. Во всяком случае, я предпочитаю изменить его на поле типа int с содержимым от 0 до 47, чтобы указать 00:00 до 23:30. Но мне нужно сохранить содержимое баз данных клиентов. Я могу просто убежать:
alter table Schedules modify Start tinyint(1);

Но это сбрасывает содержимое поля в строках. Мне нужен скрипт MySQL, чтобы сделать это без очистки содержимого. Возможно, мне придется добавить промежуточную колонку.

Что я уже пробовал:

Не знаю, как сохранить содержимое поля в строках. Это вопрос, о котором я понятия не имею.

Mehdi Gholam

Сначала типы данных должны быть совместимы, в противном случае вы должны сначала преобразовать их, а затем изменить тип данных.

ilostmyid2

как же так?

Andy Lanng

Обновите содержимое столбца:
Обновленная таблица"
Установите "column" = "0", где "column" = " 00:00"
Лучше всего было бы использовать case tho

ilostmyid2

спасибо тебе

1 Ответов

Рейтинг:
5

W∴ Balboos, GHB

Значения в формате времени не имеют никакого числового представления. Таким образом, если вы преобразуете тип столбца, он сотрет все, что не может преобразовать. Для сравнения, таблица типов символов, которые все, например, просто простые числа, преобразуется при изменении столбца. Это вопрос "Может ли он быть представлен в новом типе столбца?".

Лучшее решение - создать новый столбец типа int, обновить таблицу, чтобы преобразовать время в формат int,а затем удалить столбец time.

Альтернатива: используйте вычисленное значение столбца в новом столбце и обработайте работу в функции, чтобы вы могли ввести формат ab:cd, и он будет автоматически преобразован в альтернативный столбец.


ilostmyid2

спасибо вам. это лучше, что я читаю и узнаю больше о языке сценариев sql.