나는 이것을 시도하고있다 :
SELECT CAST(columnName AS INT), moreColumns, etc
FROM myTable
WHERE ...
여기에서 도움말 FAQ를 살펴 보았습니다 : http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html , 그렇게 할 수 있다고 말하지만 CAST(val AS TYPE)
작동하지 않습니다.
10 진수를 정수로 변환하려고하면 실제 값은 223.00이고 223을 원합니다.
답변
다음 과 같이 FLOOR 함수를 시도 할 수 있습니다 .
SELECT FLOOR(columnName), moreColumns, etc
FROM myTable
WHERE ...
소수점 이하 자릿수를 생략 할 수 있다는 것을 알고 있다면 FORMAT 함수를 사용해 볼 수도 있습니다 .
SELECT FORMAT(columnName,0), moreColumns, etc
FROM myTable
WHERE ...
두 기능을 결합 할 수 있습니다.
SELECT FORMAT(FLOOR(columnName),0), moreColumns, etc
FROM myTable
WHERE ...
답변
보다 최적화 된 방법 mysql 이 목적을 위해*:
SELECT columnName DIV 1 AS columnName, moreColumns, etc
FROM myTable
WHERE ...
사용 DIV 1 A는 엄청난 속도 향상 을 통해 FLOOR 같은 문자열 기반의 기능은 말할 것도없고, FORMAT을
mysql> SELECT BENCHMARK(10000000,1234567 DIV 7) ;
+-----------------------------------+
| BENCHMARK(10000000,1234567 DIV 7) |
+-----------------------------------+
| 0 |
+-----------------------------------+
1 row in set (0.83 sec)
mysql> SELECT BENCHMARK(10000000,1234567 / 7) ;
+---------------------------------+
| BENCHMARK(10000000,1234567 / 7) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (7.26 sec)
mysql> SELECT BENCHMARK(10000000,FLOOR(1234567 / 7)) ;
+----------------------------------------+
| BENCHMARK(10000000,FLOOR(1234567 / 7)) |
+----------------------------------------+
| 0 |
+----------------------------------------+
1 row in set (8.80 sec)
(*) 참고 : Grbts에서 지적했듯이 부호없는 / 양수 값과 함께 사용할 때 DIV 1의 동작에 유의하십시오.
답변
링크 한 기사에서 :
유형은 다음 값 중 하나 일 수 있습니다.
바이너리 [(N)]
CHAR [(N)]
데이트
날짜 시간
소수 [(M [, D])]
서명 됨 [정수]
시각
부호 없음 [정수]
SIGNED
대신 시도INT
답변
답변
floor ()와 DIV 1 사이에는 중요한 차이가 있습니다. 음수의 경우 다르게 작동합니다. DIV 1은 정수 부분 (부호화 된대로 캐스트)을 반환하는 반면, floor (x)는 “x보다 크지 않은 가장 큰 정수 값”(설명서에서)을 반환합니다. 따라서 select floor (-1.1) 는 -2가되고 select -1.1 div 1 은 -1이됩니다.
답변
CAST () 함수는 MySQL에서 “공식”데이터 유형 “INT”를 지원하지 않으며 지원 되는 유형 목록에 없습니다 . MySQL에서는 “SIGNED”(또는 “UNSIGNED”)를 대신 사용할 수 있습니다.
CAST(columnName AS SIGNED)
그러나 이것은 MySQL 전용 (표준화되지 않음)으로 보이므로 다른 데이터베이스에서는 작동하지 않을 수 있습니다. 최소한 이 문서 (Second Informal Review Draft) ISO / IEC 9075 : 1992, 데이터베이스 는 섹션에 “SIGNED”/ “UNSIGNED”를 나열하지 않습니다 4.4 Numbers
.
그러나 DECIMAL은 표준화되고 MySQL에서 지원되므로 다음은 MySQL (테스트 됨) 및 기타 데이터베이스에서 작동합니다.
CAST(columnName AS DECIMAL(0))
MySQL 문서 에 따르면 :
스케일이 0이면 DECIMAL 값에는 소수점이나 소수 부분이 포함되지 않습니다.
답변
숫자가 항상 .00으로 끝나지 않는 경우에도 ROUND ()가 있습니다. ROUND (20.6)는 21을, ROUND (20.4)는 20을 제공합니다.