Funções Date e Time (Transact-SQL)

As seções a seguir deste tópico fornecem uma visão geral de todos os tipos e funções de data e hora de Transact-SQL. Para obter informações e exemplos comuns aos tipos de dados e funções de data e hora, consulte Usando dados de data e hora.

  • Tipos de dados de data e hora

  • Funções de data e hora

  • Função que obtém valores de data e hora do sistema

  • Funções que obtêm partes de data e hora

  • Funções que obtêm diferença de data e hora

  • Funções que modificam valores de data e hora

  • Funções que definem ou obtêm funções de formato de sessão

  • Funções que validam valores de data e hora

  • Tópicos relacionados à data e à hora

Tipos de dados de data e hora

Os tipos de dados de data e hora de Transact-SQL são apresentados na tabela a seguir. 

Tipo de dados

Formato

Intervalo

Precisão

Tamanho de armazenamento (bytes)

Precisão de frações de segundo definida pelo usuário

Deslocamento de fuso horário

time

hh:mm:ss[.nnnnnnn]

00:00:00.0000000 a 23:59:59.9999999

100 nanossegundos

3 a 5

Sim

Não

date

AAAA-MM-DD

01-01-0001 a 31-12-9999

1 dia

3

Não

Não

smalldatetime

AAAA-MM-DD hh:mm:ss

1900-01-01 a 2079-06-06

1 minuto

4

Não

Não

datetime

AAAA-MM-DD hh:mm:ss[.nnn]

1753-01-01 a 9999-12-31

0,00333 segundo

8

Não

Não

datetime2

AAAA-MM-DD hh:mm:ss[.nnnnnnn]

0001-01-01 00:00:00.0000000 a 9999-12-31 23:59:59.9999999

100 nanossegundos

6 a 8

Sim

Não

datetimeoffset

AAAA-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm

0001-01-01 00:00:00.0000000 a 9999-12-31 23:59:59.9999999 (em UTC)

100 nanossegundos

8 a 10

Sim

Sim

ObservaçãoObservação

O tipo de dados Transact-SQLrowversion não é um tipo de dados de data ou hora. timestamp é um sinônimo preterido para rowversion.

Funções de data e hora

As funções de dados de data e hora de Transact-SQL são apresentadas nas tabelas a seguir. Para obter mais informações sobre determinismo, consulte Funções determinísticas e não determinísticas.

Funções que obtêm valores de data e hora do sistema

Todos os valores de data e hora do sistema são derivados do sistema operacional do computador no qual a instância do SQL Server está sendo executada.

Funções de data e hora do sistema de precisão superior

O SQL Server 2008 R2 obtém os valores de data e hora usando a API GetSystemTimeAsFileTime() do Windows. A precisão depende do hardware do computador e da versão do Windows no qual a instância do SQL Server está sendo executada. A precisão desta API está fixada em 100 nanosegundos. A precisão pode ser determinada usando a API GetSystemTimeAdjustment() do Windows.

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

SYSDATETIME

SYSDATETIME ()

Retorna um valor datetime2(7) que contém a data e a hora do computador no qual a instância de SQL Server está sendo executada. O deslocamento de fuso horário não está incluído.

datetime2(7)

Não determinística

SYSDATETIMEOFFSET

SYSDATETIMEOFFSET ( )

Retorna um valor datetimeoffset(7) que contém a data e a hora do computador no qual a instância de SQL Server está sendo executada. O deslocamento de fuso horário está incluído.

datetimeoffset(7)

Não determinística

SYSUTCDATETIME

SYSUTCDATETIME ( )

Retorna um valor datetime2(7) que contém a data e a hora do computador no qual a instância de SQL Server está sendo executada. A data e hora é retornada como hora UTC (Tempo Universal Coordenado).

datetime2(7)

Não determinística

Funções de data e hora do sistema de precisão inferior

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

Retorna um valor datetime2(7) que contém a data e a hora do computador no qual a instância de SQL Server está sendo executada. O deslocamento de fuso horário não está incluído.

datetime

Não determinística

GETDATE

GETDATE ( )

Retorna um valor datetime2(7) que contém a data e a hora do computador no qual a instância de SQL Server está sendo executada. O deslocamento de fuso horário não está incluído.

datetime

Não determinística

GETUTCDATE

GETUTCDATE ( )

Retorna um valor datetime2(7) que contém a data e a hora do computador no qual a instância de SQL Server está sendo executada. A data e hora é retornada como hora UTC (Tempo Universal Coordenado).

datetime

Não determinística

Funções que obtêm partes de data e hora

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

DATENAME

DATENAME ( datepart , date )

Retorna uma cadeia de caracteres que representa a datepart especificada da data especificada.

nvarchar

Não determinística

DATEPART

DATEPART ( datepart , date )

Retorna um inteiro que representa a datepart especificada da date especificada.

int

Não determinística

DAY

DAY ( date )

Retorna um inteiro que representa a parte do dia da date especificada.

int

Determinística

MONTH

MONTH ( date )

Retorna um inteiro que representa a parte do mês de uma date especificada.

int

Determinística

YEAR

YEAR ( date )

Retorna um inteiro que representa a parte do ano da date especificada.

int

Determinística

Funções que obtêm diferença de data e hora

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

DATEDIFF

DATEDIFF ( datepart , startdate , enddate )

Retorna o número de limites de datepart de data ou hora entre duas datas especificadas.

int

Determinística

Funções que modificam valores de data e hora

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

DATEADD

DATEADD (datepart , number , date )

Retorna um novo valor datetime adicionando um intervalo à datepart especificada da date especificada.

O tipo de dados do argumento date.

Determinística

SWITCHOFFSET

SWITCHOFFSET (DATETIMEOFFSET , time_zone)

SWITCHOFFSET altera o deslocamento de fuso horário de um valor DATETIMEOFFSET e preserva o valor UTC.

datetimeoffset com a precisão fracionária do DATETIMEOFFSET

Determinística

TODATETIMEOFFSET

TODATETIMEOFFSET (expression , time_zone)

TODATETIMEOFFSET transforma um valor datetime2 em um valor datetimeoffset. O valor datetime2 é interpretado em hora local para time_zone especificado.

datetimeoffset com a precisão fracionária do argumento datetime

Determinística

Funções que definem ou obtêm formato de sessão

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

@@DATEFIRST

@@DATEFIRST

Retorna o valor atual, da sessão, de SET DATEFIRST.

tinyint

Não determinística

SET DATEFIRST

SET DATEFIRST { number | @number_var }

Define o primeiro dia da semana como um número de 1 a 7.

Não aplicável

Não aplicável

SET DATEFORMAT

SET DATEFORMAT { format | @format_var }

Define a ordem das partes de data (dia/mês/ano) para inserir dados de datetime ou smalldatetime.

Não aplicável

Não aplicável

@@LANGUAGE

@@LANGUAGE

Retorna o nome do idioma que está sendo usado atualmente. @@LANGUAGE não é uma função de data ou hora. No entanto, a definição de idioma pode afetar a saída das funções de data.

Não aplicável

Não aplicável

SET LANGUAGE

SET LANGUAGE { [ N ] 'language' | @language_var }

Define o ambiente de idioma para as mensagens do sistema e da sessão. SET LANGUAGE não é uma função de data ou hora. No entanto, a definição de idioma afeta a saída das funções de data.

Não aplicável

Não aplicável

sp_helplanguage

sp_helplanguage [ [ @language = ] 'language' ]

Retorna informações sobre formatos de data de todos os idiomas com suporte. sp_helplanguage não é um procedimento armazenado de data ou hora. No entanto, a definição de idioma afeta a saída das funções de data.

Não aplicável

Não aplicável

Funções que validam valores de data e hora

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

ISDATE

ISDATE ( expression )

Determina se a expressão de entrada datetime ou smalldatetime é um valor válido de data ou hora.

int

ISDATE só será determinística se você usá-la com a função CONVERT, quando o parâmetro de estilo CONVERT for especificado e o estilo não for igual a 0, 100, 9 nem 109.

Tópicos relacionados à data e à hora

Tópico

Descrição

Usando dados de data e hora

Fornece informações e exemplos comuns aos tipos de dados e funções de data e hora.

CAST e CONVERT (Transact-SQL)

Fornece informações sobre a conversão de valores de data e hora para e de literais de cadeia de caracteres, bem como outros formatos de data e hora.

Gravando instruções Transact-SQL internacionais

Fornece diretrizes para a portabilidade de bancos de dados e aplicativos de bancos de dados que usam instruções Transact-SQL de um idioma a outro, ou que oferecem suporte a vários idiomas.

Funções escalares ODBC (Transact-SQL)

Fornece informações sobre as funções escalares ODBC que podem ser usadas em instruções Transact-SQL. Isso inclui funções de data e hora ODBC.

Mapeamento de tipo de dados com consultas distribuídas

Fornece informações sobre como os tipos de dados de data e hora afetam as consultas distribuídas entre servidores com diferentes versões do SQL Server ou diferentes provedores.