Partilhar via


DEFINIR DATEFORMAT (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

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

Para obter uma visão geral de todos os tipos e funções de dados de data e hora Transact-SQL, consulte Tipos de dados e funções de data e hora (Transact-SQL).

Transact-SQL convenções de sintaxe

Sintaxe

SET DATEFORMAT { format | @format_var }   

Arguments

Formato | @format_var
É a ordem das partes da data. Parâmetros válidos são mdy, dmy, ymd, ydm,myd e dym. Pode ser convertido em Unicode ou conjuntos de caracteres de dois bytes (DBCS) para Unicode. O padrão em inglês nos EUA é mdy. Para o formato DATE predefinido de todas as linguagens de suporte, veja sp_helplanguage (Transact-SQL).

Observações

O ydm do DATEFORMAT não é suportado para os tipos de dados date, datetime2 e datetimeoffset .

A definição DATEFORMAT pode interpretar as cadeias de caracteres de forma diferente para tipos de dados de data, dependendo do seu formato de cadeia. Por exemplo, as interpretações de datetime e smalldatetime podem não coincidir com datetimetime2 ou datetimeoffset. O DATEFORMAT afeta a interpretação das cadeias de caracteres à medida que são convertidas em valores de data para a base de dados. Não afeta a visualização dos valores dos tipos de dados data, nem o seu formato de armazenamento na base de dados.

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

A definição de SET DATEFORMAT é definida em tempo de execução ou execução e não em tempo de análise.

O SET DATEFORMAT sobrepõe-se à definição implícita de formato de data da linguagem SET.

Permissions

Requer adesão à função pública de .

Examples

O exemplo seguinte usa diferentes cadeias de datas como entradas em sessões com a mesma DATEFORMAT definição.

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

Ver também

Instruções SET (Transact-SQL)