Partilhar via


SET DATEFORMAT (Transact-SQL)

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

Para obter uma visão geral de todos os tipos de dados e funções de data e hora do Transact-SQL, consulte tipos de dados e funções de data e hora (Transact-SQL). Para obter informações e exemplos comuns dos tipos de dados e funções de data e hora, consulte Usando dados de data e hora.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

SET DATEFORMAT { format | @format_var } 

Argumentos

  • format | **@**format_var
    É a ordem das partes de data. Parâmetros válidos são mdy, dmy, ymd, ydm, myde dym. Este argumento ou pode ser Unicode ou conjuntos de caracteres de dois bytes (DBCS) convertidos para Unicode. O padrão inglês norte-americano é mdy. Para saber mais sobre o padrão DATEFORMAT de todas as linguagens de suporte, consulte sp_helplanguage (Transact-SQL).

Comentários

Não há suporte de DATEFORMAT ydm para os tipos de dados date, datetime2 e datetimeoffset.

O efeito da configuração de DATEFORMAT na interpretação de cadeias de caracteres pode ser diferente para valores datetime e smalldatetime se comparado a date, datetime2 e valores datetimeoffset, dependendo do formato da cadeia de caracteres. Esta configuração afeta a interpretação de cadeias de caracteres conforme elas são convertidas em valores de data para armazenamento no banco de dados. Ela não afeta a visualização de valores de tipo de dados de data que são armazenados no banco de dados ou o formato de armazenamento.

Alguns formatos de cadeias de caracteres são interpretados independentemente da configuração de DATEFORMAT, como ISO 8601, por exemplo. Para obter mais informações sobre como usar DATEFORMAT com formatos diferentes, consulte a seção " Formatos literais de cadeia de data e hora” Usando dados de data e hora.

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

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

Permissões

Requer associação na função public.

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

Referência

Conceitos