Преобразование типов в запросе

Sluggard

Новичок
Преобразование типов в запросе

Захожу на ПХПФорум, там текст перевернут верх нагами.
Зашел еще раз, стало все нормально.
Забыл свой пароль, Нажал ссылку "Забыл пароль", просит ввести мой e-mail.
Ввожу. Выводит "Вы не ввели неверный адрес электронной почты...".
Это что, приколы в честь сегодня?
Я уже боюсь задавать вопрос! :)))

Тем не менее.

Есть в БД поле типа VARCHAR (a).
Там хранятся текст вроде такого: "парарам120.45парарам", "тарарам400.24тарарам"
И поле типа FLOAT (b).

Мне нужно при выборке получать произведение a*b as с, где а приводится к типу FLOAT.
В моем случае это будут 120.45 и 400.24.
 

MishinOleg

Guest
Неужели никак нельзя преобразовать VarChar в Float (Int, Decimal)???

-~{}~ 07.04.05 16:35:

знаю, есть Convert(int,<field>), но мне нужно сделать преобразование в запросеЖ поясню:

Есть таблица, в ней нокоторый столбец SUM типа VarChar.
Мне надо вывести это поле и отсортирвать как числа а не как строки. Тип поля менять не могу по умолчанию, но вывести и отсортеровать надо.

Вот что примерно надо:

SELECT <field> FROM table ORDER BY <field>
 

Фанат

oncle terrible
Команда форума
Тип поля менять не могу по умолчанию,
ты не стесняйся, здесь все свои.
так что, умалчивать не надо.
яви народу важные причины, которые не дают тебе пользоваться базой нормально
 

MishinOleg

Guest
запросто:

Представь: есть БД, на которой работает сайт (внешняя часть). Есть Контент менеджер к сайту. Я же переписываю менеджера, но базу трогать не могу, так как сайт работает со старой структурой. То есть необходимо как-то извернуться, чтобы не менять типы данных в базе.
 

neko

tеam neko
учитывая то что в mysql экстеншине нету привязки к типам данных базы, то сайт он того -- перетерпит
 

MishinOleg

Guest
хмм, смущает: сайт довольно сложный, могут пойти ошибки. Прямая же конвертация не происходит между VarChar и Int, так что могут быть траблы, а посетителей около 3000 с сутки - стыдно!

-~{}~ 07.04.05 16:56:

ты уверен, что невозможно стелать сразу конвертацию?
 

MishinOleg

Guest
то есть, во время запроса SELECT, в той же строке, нечто вроде

SELECT CONVERT(int,<field>) FROM table ORDER BY <field>

-~{}~ 07.04.05 17:11:

попробовал локальный вариант сервака с измененными типами даннх в базе - вроде работает стабильно, но все равно как-то не по себе !-/
 

neko

tеam neko
можно конечно и в запросе, только нафига этому трупу припарки?

> попробовал локальный вариант сервака с измененными типами
> даннх в базе - вроде работает стабильно, но все равно как-то не
> по себе !-/
ну а ты проверь получше
 

MishinOleg

Guest
если можно, так скажи, не тяни кота за <...>,
 

neko

tеam neko
я откуда знаю, что у тебя там понаписано
я вообще понятия не имею, кому и зачем придет в голову хранить числа с плавающей точкой в текстовом поле
поэтому я тебе просто советую сделать по нормальному, но на всякий случай все проверить как следует
как ты и правильно сделал, проверять на копии
 

MishinOleg

Guest
база сделана с ошибкой, это все понимают. Но временно на месяц надо сделать как написано выше. Если ты не знаешь, как сделать - спасибо и на этом.
 
Сверху