BLOG main image
분류 전체보기 (65)
JSP (6)
Android (1)
ASP.NET (0)
MSSQL (4)
PHP (18)
ASP (11)
오픈 API (1)
HTML (2)
JavaScript (0)
Windows Programming (8)
컴퓨터교양 (14)
객체 지향 (0)
리뷰 및 생각 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2013. 8. 30. 00:01

미국의 통화는 달러.센트로 표현하기 때문에 소수점부를 사용한다.

그래서 moeny 타입은 소수점부에 값을 입력할 수 있다.

반면 한국의 통화는 소수점부를 사용하지 않는다.

따라서 money 타입에 값을 설정할 때에는 CEILLING() 함수나 FOOLR() 함수를 통해

정수값만 추출하여 설정하는 것이 안전하다.

 

간혹 money 타입의 소수점부에 값이 설정되어, 1원 이하의 차이로 인한 버그가 생길 때가 있다.

이럴 때는 소수점부에 값이 설정되어 있는지 조회해 봐야 한다.

declare @point money=12345.12345
select @point - floor(@point)

위와 같이 FLOOR() 함수를 통해 소수점부를 절사한 다음, 원래 값에서 빼주면, 소수점부 이하의 값만 남게 된다.

 

실제 레코드를 조회하는 방법은 아래와 같은 방식으로 한다.

select *
from points
where point - floor(point) > 0

위와 같이 조회하면 소수점부 이하에 값이 설정된 레코드만 추출될 것이다.