MSSQL 올림, 반올림, 절삭 및 날짜 포맷
얼마전에 십단위 올림에 대해서 알아보다가 반올림, 올림, 버림에 대해서 여러가지 시스템 함수를 이용하는 방법에 대해서 알아보았었는데요.(아래 링크)
[MSSQL 로우합치지 및 십단위 올림 참고]
여기서 조금 더 자세하게 알아보고 날짜에 대한것도 자세히 알아보도록 하겠습니다.
하여 MSSQL 올림, 반올림, 절삭 및 날짜 포맷에 대하여 아래와 같이 준비 했습니다.
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
SELECT CEILING(@AAA)
=> 결과값 : 13
SELECT CEILING(-@AAA)
=> 결과값 : -12
SELECT CEILING(0.00)
=> 결과값 : 0
SELECT FLOOR(@AAA)
=> 결과값 : 12
SELECT FLOOR(-@AAA)
=> 결과값 : -13
SELECT FLOOR(0.00)
=> 결과값 : 0
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 올림, 반올림, 절삭 및 날짜 포맷에 관해 알아보았습니다.
미세먼지가 심한 날입니다. 다들 마스크 지참하시고 건강한 하루 되시길 기원 합니다.
[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 올림, 반올림, 절삭 및 날짜 포맷에 관해 알아보았습니다.
미세먼지가 심한 날입니다. 다들 마스크 지참하시고 건강한 하루 되시길 기원 합니다.
댓글
댓글 쓰기