MSSQL 올림, 반올림, 절삭 및 날짜 포맷

얼마전에 십단위 올림에 대해서 알아보다가 반올림, 올림, 버림에 대해서 여러가지 시스템 함수를 이용하는 방법에 대해서 알아보았었는데요.(아래 링크)

[MSSQL 로우합치지 및 십단위 올림 참고]


여기서 조금 더 자세하게 알아보고 날짜에 대한것도 자세히 알아보도록 하겠습니다.
하여 MSSQL 올림, 반올림, 절삭 및 날짜 포맷에 대하여 아래와 같이 준비 했습니다.




▶ 반올림 및 자르기

1. 함수 : ROUND ( numeric_expression, length [, function]) 사용

DECLARE @AAA DECIMAL(16,5) = 12.35393
SELECT ROUND(@AAA,2)  
=> 결과값 : 12.35000
 
SELECT ROUND(@AAA,2)  
=> 결과값 : 12.35000

SELECT ROUND(@AAA,-1)  
=> 결과값 : 10.00000

SELECT ROUND(@AAA,-1)  
=> 결과값 : 10.00000

SELECT ROUND(@AAA,0)  
=> 결과값 : 12.00000


2. 자르기 : ROUND ( numeric_expression, length [, function]) 사용
SELECT ROUND(@AAA, 1, 1) 
=> 결과값 : 12.30000
SELECT ROUND(@AAA, 0, 1) 
=> 결과값 : 12.00000
SELECT ROUND(@AAA, -1, 1) 
=> 결과값 : 10.00000


▶ 올림

함수 : CEILING ( numeric_expression ) 사용

SELECT CEILING(@AAA)
=> 결과값 : 13 
SELECT CEILING(-@AAA)
=> 결과값 : -12 
SELECT CEILING(0.00)  
=> 결과값 : 0




▶ 내림

함수 : FLOOR ( numeric_expression ) 사용

SELECT FLOOR(@AAA)  
=> 결과값 : 12 
SELECT FLOOR(-@AAA)  
=> 결과값 : -13 
SELECT FLOOR(0.00)  
=> 결과값 : 0


▶ 날짜 포맷 모음

SELECT CONVERT(CHAR(19), GETDATE(), 0)  -- 01 02 2000 1:14PM  => MM DD YYYY H:MM 

SELECT CONVERT(CHAR(10), GETDATE(), 1)  -- 01/02/2000  => MM/DD/YYYY 

SELECT CONVERT(CHAR(8), GETDATE(), 2)  -- 00.01.02  => YY.MM.DD 

SELECT CONVERT(CHAR(8), GETDATE(), 3)  -- 02/01/00  => DD/MM/YY 

SELECT CONVERT(CHAR(8), GETDATE(), 4)  -- 02.01.00  => DD.MM.YY 

SELECT CONVERT(CHAR(8), GETDATE(), 5)  -- 02-01-00  => DD-MM-YY 

SELECT CONVERT(CHAR(8), GETDATE(), 6)  -- 02 01 00  => DD MM YY 

SELECT CONVERT(CHAR(9), GETDATE(), 7)  -- 01 02, 00  => MM DD, YY 

SELECT CONVERT(CHAR(8), GETDATE(), 8)  -- 13:14:15  => HH:MM:SS 

SELECT CONVERT(CHAR(26), GETDATE(), 9)  -- 01 02 2000 1:14:15.678PM  => MM DD YYYY H:MM:SS.MS 

SELECT CONVERT(CHAR(8), GETDATE(), 10)  -- 01-02-00  => MM-DD-YY 

SELECT CONVERT(CHAR(8), GETDATE(), 11)  -- 02/01/00  => DD/MM/YY 

SELECT CONVERT(CHAR(6), GETDATE(), 12)  -- 000102  => YYMMDD 

SELECT CONVERT(CHAR(24), GETDATE(), 13)  -- 02 01 2000 13:14:15.678  => DD MM YYYY HH:MM:SS.MS 

SELECT CONVERT(CHAR(12), GETDATE(), 14)  -- 13:14:15.678  => HH:MM:SS.MS 

SELECT CONVERT(CHAR(19), GETDATE(), 20)  -- 2000-01-02 13:14:15  => YYYY-MM-DD HH:MM:SS 

SELECT CONVERT(CHAR(23), GETDATE(), 21)  -- 2000-01-02 13:14:15.678  => YYYY-MM-DD HH:MM:SS.MS 

SELECT CONVERT(CHAR(20), GETDATE(), 22)  -- 01/02/00 1:14:15 PM  => MM/DD/YY H:M:S 

SELECT CONVERT(CHAR(10), GETDATE(), 23)  -- 2000-01-02  => YYYY-MM-DD 

SELECT CONVERT(CHAR(8), GETDATE(), 24)  -- 13:14:15  => HH:MM:SS 

SELECT CONVERT(CHAR(23), GETDATE(), 25)  -- 2000-01-02 13:14:15.678  => YYYY-MM-DD HH:MM:SS.MS 

SELECT CONVERT(CHAR(19), GETDATE(), 100) -- 01 02 2000 1:02PM  => MM DD YYYY H:MM 

SELECT CONVERT(CHAR(10), GETDATE(), 101) -- 01/02/2000  => MM/DD/YYYY 

SELECT CONVERT(CHAR(10), GETDATE(), 102) -- 2000.01.02  => YYYY.MM.DD 

SELECT CONVERT(CHAR(10), GETDATE(), 103) -- 02/01/2000  => DD/MM/YYYY 

SELECT CONVERT(CHAR(10), GETDATE(), 104) -- 02/01/2000  => DD/MM/YYYY 

SELECT CONVERT(CHAR(10), GETDATE(), 105) -- 02-01-2000  => DD-MM-YYYY 

SELECT CONVERT(CHAR(11), GETDATE(), 106) -- 02 01 2000  => DD MM YYYY 

SELECT CONVERT(CHAR(12), GETDATE(), 107) -- 01 02, 2000  => MM DD, YYYY 

SELECT CONVERT(CHAR(8), GETDATE(), 108)  -- 13:14:15  => HH:MM:SS 

SELECT CONVERT(CHAR(26), GETDATE(), 109) -- 01 02 2000 1:14:15.678PM  => MM DD YYYY H:MM:DD.MS 

SELECT CONVERT(CHAR(10), GETDATE(), 110) -- 01-02-2000  => MM-DD-YYYY 

SELECT CONVERT(CHAR(10), GETDATE(), 111) -- 2000/01/02  => YYYY/MM/DD 

SELECT CONVERT(CHAR(8), GETDATE(), 112)  -- 20000102  => YYYYMMDD 

SELECT CONVERT(CHAR(24), GETDATE(), 113) -- 02 01 2000 13:14:15.678  => DD MM YYYY HH:MM:DD.MS 

SELECT CONVERT(CHAR(12), GETDATE(), 114) -- 13:14:15:678  => HH:MM:DD:MS 

SELECT CONVERT(CHAR(19), GETDATE(), 120) -- 2000-01-02 13:14:15  => YYYY-MM-DD HH:MM:SS 

SELECT CONVERT(CHAR(23), GETDATE(), 121) -- 2000-01-02 13:14:15.678  => YYYY-MM-DD HH:MM:SS.MS 

SELECT CONVERT(CHAR(23), GETDATE(), 126) -- 2000-01-02T13:14:15.678  => YYYY-MM-DDT HH:MM:SS.MS 

SELECT CONVERT(CHAR(23), GETDATE(), 127) -- 2000-01-02T13:14:15.678  => YYYY-MM-DDT HH:MM:SS.MS




만약 위의 쿼리로 해결이 안되는 포맷이 있다면 하래 쿼리를 이용하면 어지간한 포맷을 구할 수 있습니다.

DECLARE @AAA DATETIME = GETDATE()
SELECT FORMAT(@AAA,'yyyy.MM.dd tt hh:mm')

여기까지 MSSQL 올림, 반올림, 절삭 및 날짜 포맷에 관해 알아보았습니다.
미세먼지가 심한 날입니다. 다들 마스크 지참하시고 건강한 하루 되시길 기원 합니다.

댓글

이 블로그의 인기 게시물

껌 떼는 법 (완벽 제거)

석청 효능 및 석청 부작용 알아보기

인성검사 팁 (인성검사 합격)