-
MSSQL Format 함수 사용법, 예제 및 yyyyMMdd 등 인수 설명IT/SQL 2024. 4. 2. 16:20
MSSQL 에서 FORMAT 함수는 기존의 날짜포맷 변환 등에 사용되던 convert 보다 가독성이 좋아서 보통 권장하는 함수이다.
날짜 포맷 예제
SELECT FORMAT(GETDATE(), 'yyyyMMddhhmmss') GO SELECT FORMAT('2024-01-03', 'yyyyMMdd hhmmss') GO SELECT FORMAT(CAST('2024-01-03' AS DATETIME), 'yyyyMMdd hhmmss')
날짜형식 FORMAT 함수 실행 결과 이렇게 나오는데, CONVERT(CHAR(8), GETDATE(), 112) 처럼 쿼리하는 것 보다는 결과값이 직관적으로 보이고, 형식을 바꾸기도 쉬워서 사용하기도 편함. 첫번째 인수는 VARCHAR 형식이라, 실제 날짜와 동일한 형식으로 구성되어있더라도, 그대로 넣으면 안되고 날짜형식으로 바꿔서 넣어야 한다.
날짜 형식 뿐만 아니라 숫자형식도 사용가능한데, 숫자형식은 반올림,소수자리수 등등을 감안하면 이거보단 그냥 원하는 포맷을 사용자정의 함수로 만들어서 사용하는 것이 편할 것 같음.
FORMAT 전화번호 예제
SELECT FORMAT(01012345678, '000-0000-0000')
결과
FORMAT 으로 전화번호 형식 처리 날짜 형식에 들어가는 yyyy 등 문자열은 아래와 같음. 대충 표 보면서 주로 사용하는 형식 쿼리 몇 번만 해보면 익숙해짐
형식 지정자 설명 예제 "d" 간단한 날짜 패턴입니다.
추가 정보:간단한 날짜("d") 서식 지정자.2009-06-15T13:45:30 -> 2009년 6월 15일(en-US)
2009-06-15T13:45:30 -> 2009/15/06(fr-FR)
2009-06-15T13:45:30 -> 2009/06/15(ja-JP)"D" 자세한 날짜 패턴입니다.
추가 정보:자세한 날짜("D") 서식 지정자.2009-06-15T13:45:30 -> 2009년 6월 15일 월요일(en-US)
2009-06-15T13:45:30 -> понедельник, 15 июня 2009 . (ru-RU)
2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE)"f" 전체 날짜/시간 패턴(간단한 시간)입니다.
추가 정보: 전체 날짜 간단한 시간("f") 서식 지정자.2009-06-15T13:45:30 -> 2009년 6월 15일 월요일 오후 1:45(en-US)
2009-06-15T13:45:30 -> den 15 juni 2009 13:45 (sv-SE)
2009-06-15T13:45:30 -> Σσσα, 15 σ 2009 1:45 μμ (el-GR)"F" 전체 날짜/시간 패턴(자세한 시간)
추가 정보: 전체 날짜 자세한 시간("F") 서식 지정자.2009-06-15T13:45:30 -> 2009년 6월 15일 월요일 오후 1:45:30(en-US)
2009-06-15T13:45:30 -> den 15 juni 2009 13:45:30 (sv-SE)
2009-06-15T13:45:30 -> Σσσα, 15 σ 2009 1:45:30 μμ (el-GR)"g" 일반 날짜/시간 패턴(간단한 시간)
추가 정보: 일반 날짜 간단한 시간("g") 서식 지정자.2009-06-15T13:45:30 -> 6/15/2009 오후 1:45(en-US)
2009-06-15T13:45:30 -> 15/06/2009 13:45(es-ES)
2009-06-15T13:45:30 -> 2009/6/15 13:45(zh-CN)"G" 일반 날짜/시간 패턴(자세한 시간)입니다.
추가 정보: 일반 날짜 자세한 시간("G") 서식 지정자.2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM(en-US)
2009-06-15T13:45:30 -> 15/06/2009 13:45:30(es-ES)
2009-06-15T13:45:30 -> 2009/6/15 13:45:30(zh-CN)"M", "m" 월/일 패턴입니다.
추가 정보: 월("M", "m") 서식 지정자.2009-06-15T13:45:30 -> 6월 15일(en-US)
2009-06-15T13:45:30 -> 15. juni (da-DK)
2009-06-15T13:45:30 -> 15 Juni(id-ID)"O", "o" 왕복 날짜/시간 패턴입니다.
추가 정보: 왕복("O", "o") 서식 지정자.DateTime 값:
2009-06-15T13:45:30 (DateTimeKind.Local) --> 2009-06-15T13:45:30.00000000-07:00
2009-06-15T13:45:30 (DateTimeKind.Utc) --> 2009-06-15T13:45:30.0000000Z
2009-06-15T13:45:30 (DateTimeKind.Unspecified) --> 2009-06-15T13:45:30.00000000
DateTimeOffset 값:
2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.00000000-07:00"R", "r" RFC1123 패턴입니다.
추가 정보: RFC1123("R", "r") 서식 지정자.DateTimeOffset 입력: 2009-06-15T13:45:30 -> 월, 15 6월 2009 20:45:30 GMT
DateTime 입력: 2009-06-15T13:45:30 -> 월, 15 6월 2009 13:45:30 GMT"s" 정렬 가능한 날짜/시간 패턴입니다.
추가 정보: 정렬 가능한("s") 서식 지정자.2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30
2009-06-15T13:45:30 (DateTimeKind.Utc) -> 2009-06-15T13:45:30"t" 간단한 시간 패턴입니다.
추가 정보: 간단한 시간("t") 서식 지정자.2009-06-15T13:45:30 -> 오후 1:45(en-US)
2009-06-15T13:45:30 -> 13:45(hr-HR)
2009-06-15T13:45:30 -> 01:45 م(ar-EG)"T" 자세한 시간 패턴
추가 정보: 자세한 시간("T") 서식 지정자.2009-06-15T13:45:30 -> 오후 1:45:30(en-US)
2009-06-15T13:45:30 -> 13:45:30(hr-HR)
2009-06-15T13:45:30 -> 01:45:30 م(ar-EG)"u" 정렬 가능한 유니버설 날짜/시간 패턴
추가 정보: 정렬 가능한 유니버설("u") 서식 지정자.값 사용 DateTime : 2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z
값 사용 DateTimeOffset : 2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z"U" 유니버설 전체 날짜/시간 패턴입니다.
추가 정보: 유니버설 전체("U") 서식 지정자.2009-06-15T13:45:30 -> 2009년 6월 15일 월요일 오후 8:45:30(en-US)
2009-06-15T13:45:30 -> den 15 juni 2009 20:45:30 (sv-SE)
2009-06-15T13:45:30 -> Σσσα, 15 σ 2009 8:45:30 μμ (el-GR)"Y", "y" 연도 월 패턴
추가 정보: 연도 월("Y") 서식 지정자.2009-06-15T13:45:30 -> 2009년 6월(en-US)
2009-06-15T13:45:30 -> juni 2009(da-DK)
2009-06-15T13:45:30 -> Juni 2009(id-ID)기타 모든 단일 문자 알 수 없는 지정자입니다. 런타임 FormatException을 throw합니다. 'IT > SQL' 카테고리의 다른 글
MSSQL 임시테이블 존재여부 체크 해서 생성하기 (0) 2024.04.12 MSSQL Update 문 사용법. Join 포함 (0) 2024.04.10 MSSQL 버전 확인 등 구성함수(@@함수) (0) 2024.04.08 MSSQL 프로시저 검색, 프로시저 내용 검색 (0) 2024.04.07 MSSQL CONVERT 사용법 및 날짜 포맷 (1) 2024.04.06