SET DATEFORMAT(Transact-SQL)
date, smalldatetime, datetime, datetime2 및 datetimeoffset 문자열 해석을 위해 월, 일 및 연도 날짜 부분의 순서를 설정합니다.
모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하십시오. 날짜/시간 데이터 형식 및 함수에 대한 자세한 내용과 일반적인 예는 날짜 및 시간 데이터 사용을 참조하십시오.
구문
SET DATEFORMAT { format | @format_var }
인수
- format | **@**format_var
날짜 부분의 순서입니다. 유효한 매개 변수는 mdy, dmy, ymd, ydm, myd 및 dym입니다. 유니코드나 유니코드로 변환된 DBCS(더블바이트 문자 집합) 중 하나가 될 수 있습니다. 미국 영어 기본값은 mdy입니다. 모든 지원 언어의 기본 DATEFORMAT에 대한 내용은 sp_helplanguage(Transact-SQL)를 참조하십시오.
주의
DATEFORMAT ydm은 date, datetime2 및 datetimeoffset 데이터 형식에 대해 지원되지 않습니다.
DATEFORMAT 설정이 문자열 해석에 미치는 영향은 문자열 형식에 따라 date, datetime2 및 datetimeoffset 값과 datetime 및 smalldatetime 값에서 다를 수 있습니다. 이 설정은 문자열이 데이터베이스 저장을 위해 날짜 값으로 변환될 때 문자열의 해석에 영향을 미칩니다. 데이터베이스에 저장되는 날짜 데이터 형식의 값 표시 및 저장소 형식에는 영향을 주지 않습니다.
ISO 8601과 같은 일부 문자열 형식의 경우 DATEFORMAT 설정과 관계없이 해석됩니다. 다양한 형식에서 DATEFORMAT을 사용하는 방법은 날짜 및 시간 데이터 사용에서 "문자열 리터럴 날짜 및 시간 형식" 섹션을 참조하십시오.
SET DATEFORMAT 옵션은 실행 시간 또는 런타임에 설정되며, 구문 분석 시에는 설정되지 않습니다.
SET DATEFORMAT은 SET LANGUAGE의 암시적 날짜 형식 설정보다 우선 적용됩니다.
사용 권한
public 역할의 멤버 자격이 필요합니다.
예
다음 예에서는 동일한 DATEFORMAT 설정을 갖는 세션에서 서로 다른 날짜 문자열을 입력으로 사용합니다.
-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: 2008-12-31 09:01:01.123
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.
GO