다음을 통해 공유


SET DATEFIRST(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

일주일의 시작 요일을 1부터 7까지의 숫자로 설정합니다.

모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜/시간 데이터 형식 및 함수(Transact-SQL)를 참조하세요.

Transact-SQL 구문 표기 규칙

구문

SQL Server 및 Azure SQL Database에 대한 구문

SET DATEFIRST { number | @number_var }   

Azure Synapse Analytics 및 병렬 데이터 웨어하우스용 구문

SET DATEFIRST 7 ;  

인수

number | @number_var

일주일의 시작 요일을 나타내는 정수입니다. 다음 값 중 하나일 수 있습니다.

일주일의 시작 요일
1 월요일
2 화요일
3 수요일
4 목요일
5 금요일
6 토요일
7 (기본값, 미국 영어) 일요일

설명

SET DATEFIRST의 현재 설정을 확인하려면 @@DATEFIRST 함수를 사용합니다.

SET DATEFIRST 옵션은 실행 시간 또는 런타임에 설정되며, 구문 분석 시에는 설정되지 않습니다.

SET DATEFIRST를 지정해도 DATEDIFF에는 영향을 주지 않습니다. DATEDIFF는 항상 일요일을 한 주의 첫 날로 사용하여 결정적 함수가 되도록 합니다.

모든 SET 문과 마찬가지로 SET DATEFIRST는 현재 세션에 영향을 줍니다.

사용 권한

public 역할의 멤버 자격이 필요합니다.

예제

다음 예에서는 날짜 값에 대해 요일을 표시하고 DATEFIRST 설정 변경 시의 결과를 보여 줍니다.

-- SET DATEFIRST to U.S. English default value of 7.  
SET DATEFIRST 7;  
  
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate  
    ,DATEPART(dw, '1999-1-1') AS DayOfWeek;  
-- January 1, 1999 is a Friday. Because the U.S. English default   
-- specifies Sunday as the first day of the week, DATEPART of 1999-1-1  
-- (Friday) yields a value of 6, because Friday is the sixth day of the   
-- week when you start with Sunday as day 1.  
  
SET DATEFIRST 3;  
-- Because Wednesday is now considered the first day of the week,  
-- DATEPART now shows that 1999-1-1 (a Friday) is the third day of the   
-- week. The following DATEPART function should return a value of 3.  
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate  
    ,DATEPART(dw, '1999-1-1') AS DayOfWeek;  
GO