SET DATEFORMAT (Transact-SQL)SET DATEFORMAT (Transact-SQL)

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure sìAzure SQL Data Warehouse sìParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Imposta l'ordine delle parti della data relative a mese, giorno e anno per l'interpretazione di stringhe di caratteri della data.Sets the order of the month, day, and year date parts for interpreting date character strings. Queste stringhe sono di tipo data, smalldatetime, datetime, datetime2 o datetimeoffset.These strings are of type date, smalldatetime, datetime, datetime2, or datetimeoffset.

Per una panoramica di tutti i tipi di dati e delle funzioni di data e ora Transact-SQLTransact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL).For an overview of all Transact-SQLTransact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

SET DATEFORMAT { format | @format_var }   

ArgomentiArguments

format | @ format_varformat | @format_var
Ordine delle parti della data.Is the order of the date parts. I parametri validi sono mdy, dmy, ymd, ydm, myd e dym.Valid parameters are mdy, dmy, ymd, ydm, myd, and dym. Può essere un valore Unicode o un valore DBCS (Double Byte Character Set) convertito in Unicode.Can be either Unicode or double-byte character sets (DBCS) converted to Unicode. L'impostazione predefinita per l'inglese (Stati Uniti) è mdy.The U.S. English default is mdy. Per il valore predefinito di DATEFORMAT di tutte le lingue supportate, vedere sp_helplanguage (Transact-SQL).For the default DATEFORMAT of all support languages, see sp_helplanguage (Transact-SQL).

RemarksRemarks

Il valore ydm di DATEFORMAT non è supportato per i tipi di dati date, datetime2 e datetimeoffset.The DATEFORMAT ydm isn't supported for date, datetime2, and datetimeoffset data types.

L'impostazione DATEFORMAT può interpretare le stringhe di caratteri in modo diverso per i tipi di dati date, a seconda del relativo formato stringa.The DATEFORMAT setting may interpret character strings differently for date data types, depending on their string format. Ad esempio, le interpretazioni di datetime e smalldatetime potrebbero non corrispondere a date, datetime2 o datetimeoffset.For example, datetime and smalldatetime interpretations may not match date, datetime2, or datetimeoffset. DATEFORMAT influisce sull'interpretazione di stringhe di caratteri nel momento in cui queste vengono convertite in valori di data per il database.DATEFORMAT affects the interpretation of character strings as they're converted to date values for the database. Non influisce sulla visualizzazione di valori del tipo di dati date o sul loro formato di archiviazione nel database.It doesn't affect the display of date data type values, nor their storage format in the database.

Alcuni formati delle stringhe di caratteri, ad esempio ISO 8601, sono interpretati indipendentemente dall'impostazione DATEFORMAT.Some character string formats, for example ISO 8601, are interpreted independently of the DATEFORMAT setting.

L'opzione SET DATEFORMAT viene impostata in fase di esecuzione, non in fase di analisi.The setting of SET DATEFORMAT is set at execute or run time and not at parse time.

L'opzione SET DATEFORMAT ignora l'impostazione esplicita del formato di data dell'opzione SET LANGUAGE.SET DATEFORMAT overrides the implicit date format setting of SET LANGUAGE.

AutorizzazioniPermissions

È richiesta l'appartenenza al ruolo public .Requires membership in the public role.

EsempiExamples

Nell'esempio seguente sono utilizzate diverse stringhe relative alla data come input in sessioni con la stessa impostazione DATEFORMAT.The following example uses different date strings as inputs in sessions with the same DATEFORMAT setting.

-- 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  

Vedere ancheSee Also

Istruzioni SET (Transact-SQL)SET Statements (Transact-SQL)