Condividi tramite


SET DATEFIRST (Transact-SQL)

Imposta il primo giorno della settimana su un numero compreso tra 1 e 7.

Per una panoramica di tutti i tipi di dati e delle funzioni di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

SET DATEFIRST { number | @number_var } 

Argomenti

  • number | **@**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, Stati Uniti Inglese)

    Domenica

Osservazioni

Per visualizzare l'impostazione corrente di SET DATEFIRST, utilizzare 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.

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

Vedere anche

Riferimento

Istruzioni SET (Transact-SQL)