SET DATEFORMAT(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
날짜 문자열을 해석하기 위해 월, 일 및 연도 날짜 부분의 순서를 설정합니다. 이러한 문자열은 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 설정은 문자열 형식에 따라 날짜 데이터 형식에 대해 문자열을 다르게 해석할 수 있습니다. 예를 들어 datetime 및 smalldatetime 해석은 date, datetime2 또는 datetimeoffset과 일치하지 않을 수 있습니다. DATEFORMAT은 문자열이 데이터베이스의 날짜 값으로 변환될 때 문자열의 해석에 영향을 줍니다. 날짜 데이터 형식 값의 표시나 데이터베이스 스토리지 형식에 영향을 주지 않습니다.
예를 들어 ISO 8601과 같은 일부 문자열 형식의 경우 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