SET DATEFIRST (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsBase de datos de Azure SQL en Microsoft Fabric

Establece el primer día de la semana en un número del 1 al 7.

Para una introducción acerca de todos los tipos de datos y funciones de fecha y hora de Transact-SQL, vea Funciones de fecha y hora (Transact-SQL).

Convenciones de sintaxis de Transact-SQL

Sintaxis

Sintaxis de SQL Server y Azure SQL Database

SET DATEFIRST { number | @number_var }   

Sintaxis de Azure Synapse Analytics

SET DATEFIRST 7 ;  

Argumentos

número | @number_var

Es un entero que indica el primer día de la semana. Puede ser uno de los siguientes valores.

Value Primer día de la semana:
1 Lunes
2 Martes
3 Miércoles
4 Jueves
5 Viernes
6 Sábado
7 (valor predeterminado, inglés de EE. UU.) Domingo

Comentarios

Para ver la configuración actual de SET DATEFIRST, utiliza la función @@DATEFIRST .

El valor de se establece en tiempo de SET DATEFIRST ejecución o ejecución y no en tiempo de análisis.

Especificar SET DATEFIRST no afecta a DATEDIFF. DATEDIFF siempre utiliza Domingo como el primer día de la semana para garantizar que la función es determinística.

Como todas SET las sentencias, SET DATEFIRST afecta a la sesión actual.

Permisos

Debe pertenecer al rol public .

Ejemplos

En el ejemplo siguiente se muestra el día de la semana correspondiente a un valor de fecha y se muestra el efecto de cambiar el valor de 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