2013-08-26 2 views
3

У меня разные значения данных (типы), например 10.00 или 2.00. Как я могу получить только его целочисленное значение, поэтому я хочу получить 10 вместо 10.00 и 2 вместо 2.00?Усечение результатов от SQL до целочисленного значения

+1

как о круглом методе MySQL? http://dev.mysql.com/doc/refman/5.0/en/mathematics-functions.html#function_round –

ответ

2

Например, вы cound попытаться сделать это:

WHERE CONVERT(your_column, SIGNED INTEGER) AS num 
FROM 
    table 
ORDER BY 
    num; 

Based on MySQL Documentation CONVERT() and CAST():

CONVERT() обеспечивает способ преобразования данных между различными наборами символов. Синтаксис:

CONVERT(expr USING transcoding_name) 

В MySQL имена перекодировки совпадают с именами соответствующих символов.

Besides for you also could work ROUND(X), ROUND(X,D):

раунды аргументы X до D знаков после запятой. Алгоритм округления зависит от типа данных X. D по умолчанию 0, если не указано. D может быть отрицательным, чтобы заставить D-цифры слева от десятичной точки значения X равняться нулю.

mysql> SELECT ROUND(150.000,2), ROUND(150,2); 
+------------------+--------------+ 
| ROUND(150.000,2) | ROUND(150,2) | 
+------------------+--------------+ 
|   150.00 |   150 | 
+------------------+--------------+ 
+0

Конвертировать можно круглое число. Это может быть нежелательным. –

+0

Это правда, может быть нежелательно. Зависит от. –

4

Вы можете использовать функцию FLOOR или TRUNCATE в зависимости от вашего намерения:

SELECT FLOOR(1.999)  -- 1 
SELECT FLOOR(-1.999)  -- -2 
SELECT TRUNCATE(1.999, 0) -- 1 
SELECT TRUNCATE(-1.999, 0) -- -1 
+0

Ваш пример может также служить для его цели! +1 –

 Смежные вопросы

  • Нет связанных вопросов^_^