SET DATEFORMAT (Transact-SQL)
Imposta l'ordine delle parti della data relative a mese, giorno e anno per l'interpretazione di stringhe di caratteri date, smalldatetime, datetime, datetime2 e datetimeoffset.
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). Per informazioni ed esempi comuni ai tipi di dati e alle funzioni di data e ora, vedere Utilizzo di dati relativi a data e ora.
Sintassi
SET DATEFORMAT { format | @format_var }
Argomenti
- format | **@**format_var
Ordine delle parti della data. I parametri validi sono mdy, dmy, ymd, ydm, myd e dym. Può essere un valore Unicode o un valore DBCS (Double Byte Character Set) convertito in Unicode. L'impostazione predefinita per l'inglese (Stati Uniti) è mdy. Per il valore predefinito di DATEFORMAT di tutte le lingue supportate, vedere sp_helplanguage (Transact-SQL).
Osservazioni
DATEFORMAT ydm non è supportata per i tipi di dati date, datetime2 e datetimeoffset.
L'effetto dell'impostazione DATEFORMAT sull'interpretazione di stringhe di caratteri potrebbe essere diverso per i valori datetime e smalldatetime rispetto ai valori date, datetime2 e datetimeoffset, a seconda del formato di stringa. Questa impostazione influisce sull'interpretazione di stringhe di caratteri nel momento in cui queste vengono convertite in valori di data per l'archiviazione nel database. Non influisce sulla visualizzazione di valori del tipo di dati date archiviati nel database o sul formato di archiviazione di questi.
Alcuni formati delle stringhe di caratteri, ad esempio ISO 8601, sono interpretati indipendentemente dall'impostazione DATEFORMAT. Per ulteriori informazioni sull'utilizzo di DATEFORMAT con formati diversi, vedere la sezione "Formati di valore letterale stringa supportati per datetime" in Utilizzo di dati relativi a data e ora.
L'opzione SET DATEFORMAT viene impostata in fase di esecuzione, non in fase di analisi.
L'opzione SET DATEFORMAT ignora l'impostazione esplicita del formato di data dell'opzione SET LANGUAGE.
Autorizzazioni
È richiesta l'appartenenza al ruolo public.
Esempi
Nell'esempio seguente sono utilizzate diverse stringhe relative alla data come input in sessioni con la stessa impostazione 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