SET DATEFORMAT (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse 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 di 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 la 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  

Vedi anche

Istruzioni edizione Standard T (Transact-SQL)