SET DATEFORMAT (Transact-SQL)
Si applica a: SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
endpoint di analisi SQL di Azure Synapse Analytics
Platform System (PDW)
in Microsoft Fabric
Warehouse in Microsoft Fabric
Imposta l'ordine delle parti della data relative a mese, giorno e anno per l'interpretazione di stringhe di caratteri della data. Queste stringhe sono di tipo data, smalldatetime, datetime, datetime2 o datetimeoffset.
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
SET DATEFORMAT { format | @format_var }
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere Documentazione delle versioni precedenti.
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. Il valore predefinito per l'inglese negli Stati Uniti è mdy. Per il valore predefinito di DATEFORMAT di tutte le lingue supportate, vedere sp_helplanguage (Transact-SQL).
Osservazioni:
Il valore ydm di DATEFORMAT non è supportato per i tipi di dati date, datetime2 e datetimeoffset.
L'impostazione DATEFORMAT può interpretare le stringhe di caratteri in modo diverso per i tipi di dati date, a seconda del relativo formato stringa. Ad esempio, le interpretazioni di datetime e smalldatetime potrebbero non corrispondere a date, datetime2 o datetimeoffset. DATEFORMAT influisce sull'interpretazione di stringhe di caratteri nel momento in cui queste vengono convertite in valori di data per il database. Non influisce sulla visualizzazione di valori del tipo di dati date o sul loro formato di archiviazione nel database.
Alcuni formati delle stringhe di caratteri, ad esempio ISO 8601, sono interpretati indipendentemente dall'impostazione DATEFORMAT.
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