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

APLICA-SE A: SimSQL Server SimBanco de Dados SQL do Azure SimAzure Synapse Analytics (SQL DW) SimParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database YesAzure Synapse Analytics (SQL DW) YesParallel Data Warehouse

Define a ordem das partes do mês, dia e ano para interpretar cadeias de caracteres de data.Sets the order of the month, day, and year date parts for interpreting date character strings. Essas cadeias de caracteres são do tipo date, smalldatetime, datetime, datetime2 ou datetimeoffset.These strings are of type date, smalldatetime, datetime, datetime2, or datetimeoffset.

Para obter uma visão geral das funções e dos tipos de dados de data e hora de Transact-SQLTransact-SQL, confira Funções e tipos de dados de data e hora (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).

Ícone de link do tópico Convenções da sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

SET DATEFORMAT { format | @format_var }   

ArgumentosArguments

format | @ format_varformat | @format_var
É a ordem das partes de data.Is the order of the date parts. Os parâmetros válidos são mdy, dmy, ymd, ydm, myd e dym.Valid parameters are mdy, dmy, ymd, ydm, myd, and dym. Este argumento ou pode ser Unicode ou conjuntos de caracteres de dois bytes (DBCS) convertidos para Unicode.Can be either Unicode or double-byte character sets (DBCS) converted to Unicode. O padrão do inglês dos EUA O padrão em inglês é mdy.The U.S. English default is mdy. Para o DATEFORMAT padrão de todos os idiomas com suporte, consulte sp_helplanguage (Transact-SQL).For the default DATEFORMAT of all support languages, see sp_helplanguage (Transact-SQL).

ComentáriosRemarks

O DATEFORMAT ydm não é compatível com os tipos de dados date, datetime2 e datetimeoffset.The DATEFORMAT ydm isn't supported for date, datetime2, and datetimeoffset data types.

A configuração de DATEFORMAT pode interpretar cadeias de caracteres diferentes para tipos de dados de data, dependendo do formato da cadeia de caracteres desses dados.The DATEFORMAT setting may interpret character strings differently for date data types, depending on their string format. Por exemplo, interpretações de datetime e smalldatetime talvez não correspondam a date, datetime2 ou datetimeoffset.For example, datetime and smalldatetime interpretations may not match date, datetime2, or datetimeoffset. DATEFORMAT afeta a interpretação de cadeias de caracteres conforme elas são convertidas em valores de data para o banco de dados.DATEFORMAT affects the interpretation of character strings as they're converted to date values for the database. Ele não afeta a exibição de valores de tipo de dados de data, nem ao formato de armazenamento desses valores no banco de dados.It doesn't affect the display of date data type values, nor their storage format in the database.

Alguns formatos de cadeia de caracteres são interpretados independentemente da configuração de DATEFORMAT, como ISO 8601, por exemplo.Some character string formats, for example ISO 8601, are interpreted independently of the DATEFORMAT setting.

A configuração de DATEFORMAT é definida no momento da execução e não no momento da análise.The setting of SET DATEFORMAT is set at execute or run time and not at parse time.

SET DATEFORMAT substitui a configuração de formato de data implícita de SET LANGUAGE.SET DATEFORMAT overrides the implicit date format setting of SET LANGUAGE.

PermissõesPermissions

Requer associação à função pública .Requires membership in the public role.

ExemplosExamples

O seguinte exemplo usa cadeias de datas diferentes como entradas em sessões com a mesma configuração 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  

Consulte TambémSee Also

Instruções SET (Transact-SQL)SET Statements (Transact-SQL)