by 부구냥 [MySQL] [2020.06.08 16:45:59]
Mysql에서
decimal(19, 4) 타입으로 된 정수형 컬럼이
오라클에서 NUMBER로 된것이 -0.13으로 소수점까지 잘나오는데
mysql에서는 잘려서 -0까지만 나옵니다....
소수 2째까지 나오게 round함수로 감싸는데도 -0.13아닌 -0까지 나오는데
원인을 알고 싶습니다.
decimal(19, 4) 타입으로 된 정수형 컬럼이??? 소수점이 들어가는데 왜? 정수형이라고 하죠? decimal(19, 4) 안하고 그냥 decimal(19) 또는 decimal 하신 듯 한데요?
-- Test -- SELECT -0.13 v , CAST(-0.13 AS DECIMAL(19,4)) v1 --> -0.1300 , CAST(-0.13 AS DECIMAL(19) ) v2 --> 0 , CAST(-0.13 AS DECIMAL ) v3 --> 0
확인해본결과 decimal(19, 4)로 되어있네요.
혹시 끝에 19, 4 때문에 -0.13 아닌 -0으로 잘려나오는건가요.
무엇을 통해서 보고 있나요? 실제와 다르게 보고 있을 지도 모릅니다.
혹시 CAST함수로 보이게 한건가요?
보이게 한게 아니고, 데이터 형을 바꾼 것입니다. decimal(19, 4) 로 바꾸어 보니 -0.1300 형태로 출력되네요.
자료 입력 과정에서 잘못된 것인지? (실제로 0 이 입력되는 오류) 자료 출력 과정에서 잘못된 것인지? (실제 -0.13 이지만 0 으로 출력되는 오류) 확인이 필요해 보입니다. 입력 또는 출격 관련 툴 또는 방법 상에 문제가 있을 것으로 생각됩니다.