본문 바로가기

IT

MSSQL 숫자에서 문자, 문자에서 숫자 FORMAT CAST(... AS FLOAT)

1. FORMAT

소수점 없이 정수로 포맷팅

 

SELECT FORMAT(100.25, 'N0') AS MON01

결과 : '100'

 

소수점 첫째 자리까지 포맷팅

 

SELECT FORMAT(100.25, 'N1') AS MON01

결과 : '100.2'

 

SQL Server의 FORMAT 함수에서:

  • 'N0' → 소수점 없음 (정수)
  • 'N1' → 소수점 한 자리
  • 'N2' → 소수점 두 자리
  • 'N3' → 소수점 세 자리
  • … 이런 식으로 계속 확장됩니다.

※  예시: FORMAT(1234.5678, 'N2')

     결과 : '1,234.57'

 

 

✔ 숫자에 대한 FORMAT 예시:

 

SELECT FORMAT(1234.567, 'N2')   -- 결과: '1,234.57'
SELECT FORMAT(0.8532, 'P1')     -- 결과: '85.3%' (P는 백분율)

 

✔ 날짜에 대한 FORMAT 예시:

 

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')  -- 결과: '2025-04-08'
SELECT FORMAT(GETDATE(), 'MM/dd/yyyy')  -- 결과: '04/08/2025'

 

여기서 잠깐

 

SELECT FORMAT(0.8532, 'P1') 이런게 있다면 굳이 *100을 할 필요가 없네?

 

정확합니다! 🎯
FORMAT(0.8532, 'P1')처럼 P (Percent) 형식을 쓰면,

자동으로 100을 곱하고 % 기호까지 붙여줍니다.
즉, *100을 따로 할 필요가 없습니다.

 

※  예시 비교:

0.8532 FORMAT(0.8532, 'P1') 85.3% 자동으로 100 곱하고 % 붙임
0.8532 FORMAT(0.8532 * 100, 'N1') + '%' 85.3% 수동으로 계산하고 % 붙임

P0, P1, P2 등으로 소수점 자리수도 조절할 수 있습니다.

 

※  참고 팁:

  • FORMAT(값, 'P0') → 정수 퍼센트 (85%)
  • FORMAT(값, 'P2') → 소수점 두 자리 (85.32%)
  • 내부적으로 문자열로 반환되기 때문에, 숫자 계산에 다시 쓰려면 변환이 필요합니다.

 

FORMAT 함수는 숫자에만 적용되고 리턴은 문자로 반환

문자열 포맷을 다루고 싶을 땐 LEFT, RIGHT, SUBSTRING, CONCAT

같은 문자열 함수들을 사용해야 합니다.

 

SELECT SUBSTRING('20250408', 5, 2) + '/' + SUBSTRING('20250408', 7, 2)  

 

◆  문자열을 숫자로 변환하는 방법

SQL Server에서는 보통 다음 중 하나를 사용합니다.

 

1. CAST() 사용

CAST('85.3' AS FLOAT)

2. CONVERT() 사용

CONVERT(DECIMAL(5,2), '85.3')

 

 

※  예시: FORMAT 결과를 다시 숫자로 변환해서 계산

DECLARE @rate NVARCHAR(10) = FORMAT(0.8532, 'N2') -- '85.32'
SELECT CAST(@rate AS FLOAT) + 10 -- 결과: 95.32
 
 

▷ 주의할 점

  • FORMAT으로 %가 포함된 문자열(85.3%)을 반환한 경우엔,
    바로 숫자로 변환할 수 없습니다. % 기호를 먼저 제거해야 합니다.

※  예시:

DECLARE @percent NVARCHAR(10) = FORMAT(0.8532, 'P1')
-- '85.3%' -- % 제거 후 변환
SELECT CAST(REPLACE(@percent, '%', '') AS FLOAT)
-- 결과: 85.3

 

☞  요약:

숫자 → 문자열 FORMAT(...) NVARCHAR
문자열 → 숫자 CAST(...) 또는 CONVERT(...) FLOAT, DECIMAL 등

 

 

 

 

'IT' 카테고리의 다른 글

C# 비동기 async / await + Task 이해와 예제  (0) 2025.04.03
C# Queue 사용법 예제  (0) 2025.04.02
C# SWICH 문 예제  (0) 2025.04.02
C# 델리게이트 이벤트핸들러 사용 예제  (0) 2025.03.28
C# 델리게이트 이해 및 예제  (0) 2025.03.28