[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: возможно ли такое преобразование?
pavel
Собственно имеется поле в базе данных (varchar), в котором записано число вида 10 250,50
Возможно ли это все преобразовать к числовому виду, чтобы потом использовать в условии WHERE?



Спустя 5 минут, 21 секунда (12.01.2007 - 17:53) Ghost написал(а):

Спустя 6 дней, 15 часов, 28 минут, 20 секунд (19.01.2007 - 09:22) Alek86 написал(а):
а разве SQL не без разницы, текст с числом или число?

Спустя 1 час, 56 минут, 48 секунд (19.01.2007 - 11:18) pavel написал(а):
QUOTE(Alek86)
а разве SQL не без разницы, текст с числом или число?

Нет, конечно, если речь идет, напримнр, о сортировке или выборке по условию where

QUOTE
http://phpclub.ru/mysql/doc/cast-functions.html

В том то и дело, что одними преобразованиями типов не отделаешься - в сообщении есть пробел!
Решается с помощью REPLACE

SELECT (CAST(REPLACE(price,' ','') AS SIGNED) as price FROM mytable

Но, при этом теряется десятичная часть числа, т.к. CAST может преобразовать только в целое

Спустя 26 минут, 54 секунды (19.01.2007 - 11:45) Ghost написал(а):
QUOTE
mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);
       -> -1

Следует учитывать, что если один из операндов представлен величиной с плавающей точкой (в данном контексте DECIMAL() рассматривается как величина с плавающей точкой), результат также является величиной с плавающей точкой и не подчиняется вышеприведенному правилу приведения.

mysql> SELECT CAST(1 AS UNSIGNED) -2.0
       -> -1.0


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.