Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MySQL: VarChar -> Decimal [D7, MySQL]


BigError ©   (2004-09-10 21:15:00) 

Когда-то, начиная юзать MySQL, сделал глупость по неопытности - создал базу, где Currency хранил как VarChar. Теперь же, надо эти VarChar перевести в Decimal, но при смене типа столбца почему-то теряется из VarChar все, что было после запятой (включая саму запятую).
То есть, например, было VarChar(8)='1234,56', стало Decimal(8,2)=1234

Кто знает, почему так? И, самое главное, как теперь сменить тип столбца, ничего не потеряв?

В базе накопилось несколько тысяч записей, поэтому вариант "выпиши копейки на бумажку, смени тип и впиши ручками" нереален. Да и писать утиль, который сначала все сохранит, сменит тип столбцов, а потом перезапишет их, тоже особо времени нет. Но пока это все, что я придумал за 15 минут размышлений.
Но наверняка есть какой-то другой путь, бескровный.


Smashich   (2004-09-11 09:22:00) [1]

добавить столбец. пройтись по всем записям конвертнув в нужный тип и записав в новый столбец. удалить старый


Vasis   (2004-09-11 06:48:00) [2]

Можно экспортнуть таблицу в Excel, там сменить формат ячеек... и обратно импортнуть в таблицу... Благо на такую программу понадобится 2 минуты...


sniknik   (2004-09-11 00:00:00) [3]

смени сначала запятую на точку перед переводом в в новый тип.
должно помочь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо