데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
파일용량이 들어가 있는 컬럼이 있는데요.
이걸 보여줄때 kb 아님 mb 로 보여줘야 되는데
이걸 환산을 어떻게 해야 하는 방법이 있을까요?
1001000 -> 1MB 잔아요
흠 잘 모르곘어요
파일용량의 단위가 무엇인지 그리고 KB로만 보여줄건지 MB로만 보여줄건지 아니면 적당히 보여줄건지에 따라 다르겠네요.
2의 10승은 1024이니까
KB로 저장된걸 MB로 보여줄려면 단순히 1024로 나눠주면 됩니다.
근데 그게 아니고
몽땅 바이트로 들어가 있는데
이걸 적당히 KB, MB, GB등으로 보여달라고 하면....
일단 고등학교 수학책을 펴고.... 밑을 10으로 하는 로그합수에 대해 공부해봅시다.... ㅠㅠ
DECLARE @FILE TABLE (FILENAME VARCHAR(100), SIZE INT)
INSERT @FILE
SELECT 'A.JPG', 1
UNION ALL SELECT 'B.JPG', 1024
UNION ALL SELECT 'C.JPG', 1024 + 512
UNION ALL SELECT 'D.JPG', 1024*1024
UNION ALL SELECT 'E.JPG', 1024*1024 + 1024*512
UNION ALL SELECT 'F.JPG', 1024*1024 * 1024
UNION ALL SELECT 'G.JPG', 1024*1024*1024 + 1024*1024*512
SELECT FILENAME,
SIZE,
LOG = LOG10(SIZE),
SIZE = CASE WHEN LOG10(SIZE) < 3 THEN CONVERT(VARCHAR(10), CONVERT(NUMERIC(9, 1), SIZE)) + 'KB'
WHEN LOG10(SIZE) >= 3 AND LOG10(SIZE) < 6 THEN CONVERT(VARCHAR(10), CONVERT(NUMERIC(9, 1), SIZE / 1024.0)) + 'MB'
WHEN LOG10(SIZE) >= 6 AND LOG10(SIZE) < 9 THEN CONVERT(VARCHAR(10), CONVERT(NUMERIC(9, 1), SIZE / 1024.0 / 1024.0)) + 'GB'
ELSE CONVERT(VARCHAR(10), CONVERT(NUMERIC(9, 1), SIZE / 1024.0 / 1024.0 / 1024.0)) + 'TB' END
FROM @FILE