Partilhar via


data (Transact-SQL)

Define uma data.

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

Descrição de data

Propriedade

Valor

Sintaxe

date

Uso

DECLARE @MyDate date

CREATE TABLE Table1 ( Column1 date )

Formato literal de cadeia de caracteres padrão

(usado para cliente de nível inferior)

AAAA-MM-DD

Para obter mais informações, consulte a seção Compatibilidade com versões anteriores para clientes de nível inferior em Usando dados de data e hora.

Intervalo

0001-01-01 a 9999-12-31

1º de Janeiro, 1 d.C. a 31 de Dezembro, 9999 d.C.

Intervalos de elementos

AAAA são quatro dígitos de 0001 a 9999 que representam um ano.

MM são dois dígitos de 01 a 12 que representam um mês do ano especificado.

DD são dois dígitos de 01 a 31, dependendo do mês que representa um dia do mês especificado.

Comprimento de caracteres

10 posições

Precisão, escala

10, 0

Tamanho de armazenamento

3 bytes, fixo.

Estrutura de armazenamento

Um número inteiro de 1, 3 bytes armazena a data.

Precisão

Um dia

Valor padrão

1900-01-01

Este valor é usado para a parte anexada de data utilizada para conversão implícita de time em datetime2 ou datetimeoffset.

Calendário

Gregoriano

Precisão de segundo fracionário definida pelo usuário

Nenhum(a)

Preservação e reconhecimento de deslocamento de fuso horário

Nenhum(a)

Reconhecimento de horário de verão

Nenhum(a)

Formatos de literais de cadeia de caracteres com suporte de data

A tabela a seguir mostra os formatos de literais de cadeia de caracteres válidos para o tipo de dados date.

Numérico

Descrição

mda                         

[m]m/dd/[aa]aa       

[m]m-dd-[aa]aa       

[m]m.dd.[aa]aa       

mad                         

mm/[aa]aa/dd       

mm-[aa]aa/dd       

[m]m.[aa]aa.dd       

dma                         

dd/[m]m/[aa]aa       

dd-[m]m-[aa]aa       

dd.[m]m.[aa]aa       

dam                         

dd/[aa]aa/[m]m       

dd-[aa]aa-[m]m       

dd.[aa]aa.[m]m       

amd                         

[aa]aa/[m]m/dd       

[aa]aa-[m]m-dd       

[aa]aa-[m]m-dd       

[m]m, dd e [aa]aa representam o mês, o dia e o ano de uma cadeia de caracteres com barras (/), hífens (-), ou pontos (.) como separadores.

Somente anos de dois ou quatro dígitos possuem suporte. Use quatro dígitos para o ano sempre que possível. Para especificar um número inteiro de 0001 até 9999 que representa o ano de corte para interpretar anos com dois dígitos e com quatro dígitos, use o Opção two digit year cutoff.

Um ano de dois dígitos que é menor ou igual aos últimos dois dígitos do ano de corte está no mesmo século do ano de corte. Um ano de dois dígitos que é maior ou igual aos últimos dois dígitos do ano de corte está no mesmo século que vem antes do ano de corte. Por exemplo, se o ano de corte de dois dígitos for 2049 padrão, o ano de dois dígitos 49 será interpretado como 2049 e o ano de dois dígitos 50 será interpretado como 1950.

Os formato padrão de data é determinado pelas configurações atuais de idioma. Você pode alterar o formato da data usando as instruções SET LANGUAGE e SET DATEFORMAT.

O formato ydm não tem suporte para date.

Alfabético

Descrição

mês [dd][,] aaaa      

mês dd[,] [aa]aa      

mês aaaa [dd]          

[dd] mês[,] aaaa      

dd mês[,][aa]aa       

dd [aa]aa mês         

[dd] aaaa mês         

aaaa mês [dd]         

aaaa [dd] mês         

mon representa o nome completo do mês ou a abreviação do mês segundo o idioma atual. As vírgulas são opcionais e não há diferenciação entre letras maiúsculas e minúsculas.

Para evitar ambigüidade, use anos de quatro dígitos.

Se o dia estiver ausente, o primeiro dia do mês será fornecido.

ISO 8601

Descrição

AAAA-MM-DD            

AAAAMMDD               

Igual ao padrão SQL. Este é o único formato que é definido como padrão internacional.

Não separado

Descrição

[aa]aammdd            

aaaa[mm][dd]          

Os dados de data podem ser especificados com quatro, seis ou oito dígitos. Uma cadeia de caracteres de seis ou oito dígitos é sempre interpretada como ymd. O mês e o dia sempre devem ser de dois dígitos. Uma cadeia de caracteres de quatro dígitos é interpretada como um ano.

ODBC

Descrição

{ d 'aaaa-mm-dd' }   

Específico à API ODBC.

Funções em SQL Server 2008 como em SQL Server 2005.

Formato W3C XML

Descrição

aaaa-mm-ddTZD      

Suporte específico para utilização com XML/SOAP.

TZD é o designador de fuso horário (Z ou + hh: mm ou -hh:mm):

  • hh:mm representa o deslocamento de fuso horário. hh é composto de dois dígitos, variando de 0 a 14, que representa o número de horas do deslocamento de fuso horário.

  • MM são dois dígitos, variando de 0 a 59, que representam o número de minutos adicionais no deslocamento de fuso horário.

  • + (mais) ou - (menos) é o sinal obrigatório do deslocamento de fuso horário. Ele indica que o deslocamento de fuso horário é adicionado ou subtraído do UTC (Tempo Universal Coordenado) para se obter a hora local. O intervalo válido de deslocamento de fuso horário vai de -14: 00 a +14: 00.

Conformidade com ANSI e ISO 8601

date é compatível com a definição padrão ANSI SQL do calendário Gregoriano: “NOTA 85 - Tipos de dados date e time aceitarão que datas no formato Gregoriano sejam armazenadas no intervalo de dados 0001–01–01 CE até 9999–12–31 CE”.

O formato padrão de literais de cadeia de caracteres que é usado para clientes de nível inferior,é compatível com o formato padrão SQL que é definido como AAAA-MM-DD. Este formato é o mesmo da definição ISO 8601 para DATE.

Exemplos

O exemplo a seguir compara os resultados da conversão de uma cadeia de caracteres para cada tipo de dados de data e hora.

SELECT 
     CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time' 
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date' 
    ,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS 
        'smalldatetime' 
    ,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime' 
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS 
        'datetime2'
    ,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS 
        'datetimeoffset';

Aqui está o conjunto de resultados.

Tipo de dados

Saída

time

12:35:29. 1234567

date

2007-05-08

smalldatetime

2007-05-08 12:35:00

datetime

2007-05-08 12:35:29.123

datetime2

2007-05-08 12:35:29. 1234567

datetimeoffset

2007-05-08 12:35:29.1234567 +12:15