Compartilhar via


tipos de dados e funções de data e hora (Transact-SQL)

As seções a seguir neste tópico fornecem uma visão geral de todos os tipos de dados e funções de data e hora de Transact-SQL.

  • 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 valores de data e hora de suas partes

    • 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 segundo fracionário 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

0001-01-01 a 9999-12-31

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-SQL rowversion 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 2012 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 de datetime2(7) que contém a data e a hora do computador no qual a instância do SQL Server está sendo executada. O deslocamento de fuso horário não está incluído.

datetime2(7)

Não determinístico

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

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

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 datetime 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ístico

GETDATE

GETDATE ( )

Retorna um valor datetime 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ístico

GETUTCDATE

GETUTCDATE ( )

Retorna um valor datetime 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ístico

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

DATEPART

DATEPART ( datepart , date )

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

int

Não determinístico

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 valores de data e hora de suas partes

Função

Sintaxe

Valor de retorno

Tipo de dados de retorno

Determinismo

DATEFROMPARTS

DATEFROMPARTS ( year, month, day )

Retorna um valor de date para o ano, o mês e o dia especificados.

date

Determinística

DATETIME2FROMPARTS

DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )

Retorna um valor datetime2 para a data e a hora especificadas e com a precisão especificada.

datetime2 ( precision )

Determinística

DATETIMEFROMPARTS

DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds )

Retorna um valor datetime para a data e a hora especificadas.

datetime

Determinística

DATETIMEOFFSETFROMPARTS

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )

Retorna um valor datetimeoffset para a data e a hora especificadas e com deslocamentos e precisão especificados.

datetime ( precision )

Determinística

SMALLDATETIMEFROMPARTS

SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute )

Retorna um valor smalldatetime para a data e a hora especificadas.

smalldatetime

Determinística

TIMEFROMPARTS

TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )

Retorna um valor time para a hora especificada e com a precisão especificada.

time ( precision )

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

EOMONTH

EOMONTH ( start_date [, month_to_add ] )

Retorna o último dia do mês que contém a data especificada com um deslocamento opcional.

Tipo de retorno é o tipo de start_date ou datetime2(7).

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

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

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.

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

Consulte também

Referência

Funções internas (Transact-SQL)

Tipos de dados (Transact-SQL)