MySQL에서 10진수로 캐스트
MySQL에서 Decimal을 다음과 같이 캐스팅하려고 합니다.
CAST((COUNT(*) * 1.5) AS DECIMAL(2))
표의 행 수(1.5배)를 점 뒤에 두 자리 숫자가 있는 부동 소수점 숫자로 변환하려고 합니다.
SQL 코드:
SELECT CONCAT(Guardian.title, ' ',
Guardian.forename, ' ',
Guardian.surname) AS 'Guardian Name',
COUNT(*) AS 'Number of Activities',
(COUNT(*) * 1.5) AS 'Cost'
FROM Schedule
INNER JOIN Child ON Schedule.child_id = Child.id
INNER JOIN Guardian ON Child.guardian = Guardian.id
GROUP BY Guardian
ORDER BY Guardian.surname, Guardian.forename ASC
오류가 발생합니다.
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'CAST((COUNT(*) * 1.5) AS DECIMAL(12,2))' at line 1.
또 다른 시도, 이 출연진도 작동하지 않습니다.
SELECT CONCAT(Guardian.title, ' ',
Guardian.forename, ' ',
Guardian.surname) AS 'Guardian Name',
COUNT(*) AS 'Number of Activities',
CAST((COUNT(*) * 1.5) AS DECIMAL(8,2)) AS 'Cost'
FROM Schedule
INNER JOIN Child ON Schedule.child_id = Child.id
INNER JOIN Guardian ON Child.guardian = Guardian.id
GROUP BY Guardian
ORDER BY Guardian.surname, Guardian.forename ASC
mysql을 사용하여 정수에서 소수로 캐스트하려면 어떻게 해야 합니까?
MySQL 문서에서: 고정점 유형(정확한 값) - 10진수, 숫자:
표준 SQL에서 구문은
DECIMAL(M)
와 동등합니다.DECIMAL(M,0)
정수 2자리와 소수점 0자리의 숫자로 변환합니다.대신 사용해 보십시오.
CAST((COUNT(*) * 1.5) AS DECIMAL(12,2))
MySQL을 10진수로 캐스팅:
맨 정수를 10진수로 캐스팅:
select cast(9 as decimal(4,2)); //prints 9.00
정수 8/5를 10진수로 캐스팅:
select cast(8/5 as decimal(11,4)); //prints 1.6000
문자열을 10진수로 캐스팅:
select cast(".885" as decimal(11,3)); //prints 0.885
두 int 변수를 소수점으로 캐스팅
mysql> select 5 into @myvar1;
Query OK, 1 row affected (0.00 sec)
mysql> select 8 into @myvar2;
Query OK, 1 row affected (0.00 sec)
mysql> select @myvar1/@myvar2; //prints 0.6250
소수점을 다시 문자열로 캐스팅:
select cast(1.552 as char(10)); //shows "1.552"
DECIMAL
두 부분으로 나뉩니다.Precision
그리고.Scale
따라서 쿼리의 일부는 다음과 같습니다.
CAST((COUNT(*) * 1.5) AS DECIMAL(8,2))
Precision
값에 대해 저장된 유효 자릿수를 나타냅니다.
Scale
소수점 다음에 저장할 수 있는 자릿수를 나타냅니다.
나는 게으릅니다.
0 + colname
또한 소수점 이하, 부동 소수점 등의 숫자로 고정된 경우에도 작동합니다.
참고 항목ROUND()
그리고.FORMAT()
.
제 생각에 당신의 목적을 위한 대안은 라운드() 함수를 사용하는 것입니다.
select round((10 * 1.5),2) // prints 15.00
여기에서 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/11830509/cast-to-decimal-in-mysql
'programing' 카테고리의 다른 글
코드 매개 변수를 실행하기 전에 페이지가 로드될 때까지 기다릴 사용자 스크립트? (0) | 2023.08.07 |
---|---|
WebAPI를 사용하여 이미지를 처리하는 방법 (0) | 2023.08.07 |
잘못된 키 해시를 가진 Android Facebook 통합 (0) | 2023.08.07 |
배경색과 배경색의 차이점은 무엇입니까? (0) | 2023.08.07 |
각도 - 구성이 작업 공간에서 설정되지 않았습니다. (0) | 2023.08.07 |