SET DATEFIRST (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Imposta il primo giorno della settimana su un numero compreso tra 1 e 7.
Per una panoramica di tutte le funzioni e i tipi di dati di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL).
Convenzioni relative alla sintassi Transact-SQL
Sintassi
Sintassi per SQL Server e per il database SQL di Azure
SET DATEFIRST { number | @number_var }
Sintassi per Azure Synapse Analytics e Parallel Data Warehouse
SET DATEFIRST 7 ;
Argomenti
numero | @number_var
Valore intero che indica il primo giorno della settimana. Può essere uno dei valori seguenti.
Valore | Primo giorno della settimana |
---|---|
1 |
lunedì |
2 |
Martedì |
3 |
mercoledì |
4 |
giovedì |
5 |
Venerdì |
6 |
Sabato |
7 (impostazione predefinita, inglese statunitense) |
Domenica |
Osservazioni:
Per visualizzare l'impostazione corrente di SET DATEFIRST, usare la funzione @@DATEFIRST.
L'opzione SET DATEFIRST viene impostata in fase di esecuzione, non in fase di analisi.
La specifica di SET DATEFIRST non influisce su DATEDIFF. In DATEDIFF viene utilizzata sempre la domenica come primo giorno della settimana per garantire che la funzione sia deterministica.
Analogamente a tutte le istruzioni SET, SET DATEFIRST influisce sulla sessione corrente.
Autorizzazioni
È richiesta l'appartenenza al ruolo public .
Esempi
In questo esempio viene visualizzato il giorno della settimana in base a un valore di data e vengono illustrati gli effetti della modifica dell'opzione 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