SET DATEFORMAT (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint di analisi SQL in Microsoft FabricMagazzino in Microsoft FabricDatabase SQL 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 }   

Argomenti

formato | @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 DATEFORMAT di tutti i linguaggi di supporto, vedi sp_helplanguage (Transact-SQL).

Osservazioni:

Il DATEFORMATydm 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 data, a seconda del loro formato di stringa. Ad esempio, le interpretazioni di datetime e smalldatetime potrebbero non corrispondere a date, datetime2 o datetimeoffset. DATEFORMAT influisce sull'interpretazione delle stringhe di caratteri mentre 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 di stringhe di caratteri, ad esempio ISO 8601, vengono interpretati indipendentemente dall'impostazione DATEFORMAT .

L'impostazione di viene impostata in fase di SET DATEFORMAT esecuzione o in fase di esecuzione e non in fase di analisi.

SET DATEFORMAT sovrascrive l'impostazione implicita del formato data di 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

SET Istruzioni (Transact-SQL)