SET DATEFORMAT (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Define a ordem das partes do mês, dia e ano para interpretar cadeias de caracteres de data. Essas cadeias de caracteres são do tipo date, smalldatetime, datetime, datetime2 ou datetimeoffset.

Para ter uma visão geral de todas as funções e tipos de dados de data e hora do Transact-SQL, confira Funções e tipos de dados de data e hora (Transact-SQL).

Convenções de sintaxe de Transact-SQL

Sintaxe

SET DATEFORMAT { format | @format_var }   

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

format | @format_var
É a ordem das partes de data. Os parâmetros válidos são mdy, dmy, ymd, ydm, myd e dym. Este argumento ou pode ser Unicode ou conjuntos de caracteres de dois bytes (DBCS) convertidos para Unicode. O padrão do inglês dos EUA O padrão em inglês é mdy. Para o DATEFORMAT padrão de todos os idiomas com suporte, confira sp_helplanguage (Transact-SQL).

Comentários

O DATEFORMAT ydm não é compatível com os tipos de dados date, datetime2 e datetimeoffset.

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. Por exemplo, interpretações de datetime e smalldatetime talvez não correspondam a date, datetime2 ou datetimeoffset. DATEFORMAT afeta a interpretação de cadeias de caracteres conforme elas são convertidas em valores de data para o banco de dados. 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.

Alguns formatos de cadeia de caracteres são interpretados independentemente da configuração de DATEFORMAT, como ISO 8601, por exemplo.

A configuração de DATEFORMAT é definida no momento da execução e não no momento da análise.

SET DATEFORMAT substitui a configuração de formato de data implícita de SET LANGUAGE.

Permissões

Requer associação à função pública .

Exemplos

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

Consulte Também

Instruções SET (Transact-SQL)