1월, 2019의 게시물 표시

MSSQL exponential varchar to int, numeric

이미지
안녕하십니까. 데이터 베이스 쿼리를 다루는 도중 사소하지만 귀찮은 데이터를 발견하여 그에 대한 포스팅을 해보려고 합니다. 문제 상황 MS-SQL에 저장되어 있는 데이터가 아래와 같이 1E+26인 지수꼴의 형태로 표현되어 있는 경우가 있습니다.  이는 매우큰 자리를 지수꼴로 리턴하는 형식인데요. 코드상에서 받아오면 어찌되는지는 모르겠지만 디비 데이터를 보는 도중에 이렇게 리턴이 되면 트래킹하기 좀 귀찮아 집니다. varchar to float 해당 데이터를 변환하기 위해서는 일단 float로 변환해야 합니다. 1E+26이 말그대로 varchar를 표현하고 있기 때문입니다. select cast(data as float) as data from DBO..TABLE WITH(NOLOCK) float numeric 위에서 float까지 변환해도 1E+26으로 표시되어 있습니다. 데이터 형식만 바꿨을뿐(1E+26) decimal의 형식으로 표현하라고 하지 않았기 때문 입니다. 이에 대하여 사용할 수 있는 데이터 형식은 numeric 입니다. select convert(numeric(38,0),cast(data as float)) as data as data from DBO..TABLE WITH(NOLOCK) 결과 아래와 같이 원하는 형식으로 출력이 됩니다! 개꾸르