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

Aplica-se a:yesSQL Server (todas as versões compatíveis) YesBanco de Dados SQL do Azure YesInstância Gerenciada de SQL do Azure yesAzure Synapse Analytics

As seções neste artigo abrangem todos os tipos de dados e funções de data e hora do Transact-SQL.

Tipos de dados de data e hora

Os tipos de dados de data e hora do Transact-SQL estão listados na seguinte tabela:

Tipo de dados Formatar 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 01.01.00 a 06.06.79 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 Yes

Observação

O tipo de dados rowversion do Transact-SQL não é um tipo de dados de data nem de hora. timestamp é um sinônimo preterido de rowversion.

Funções de data e hora

As tabelas a seguir listam as funções de data e hora do Transact-SQL. Consulte Funções determinísticas e não determinísticas para obter mais informações sobre determinismo.

Funções que retornam valores de data e hora do sistema

O Transact-SQL deriva todos os valores de data e hora do sistema operacional do computador no qual a instância do SQL Server é executada.

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

SQL Server 2019 (15.x) deriva os valores de data e hora usando a API do Windows GetSystemTimeAsFileTime(). 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 API tem uma precisão fixada em 100 nanossegundos. Use a API do Windows GetSystemTimeAdjustment() para determinar a precisão.

Função Sintaxe Retornar valor Tipo de dados de retorno Determinismo
SYSDATETIME SYSDATETIME ( ) Retorna um valor datetime2(7) que contém a data e hora do computador no qual a instância de SQL Server é executada. O valor retornado não inclui a compensação de fuso horário. Datetime2 (7) Não determinístico
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Retorna um valor datetimeoffset(7) que contém a data e hora do computador no qual a instância de SQL Server é executada. O valor retornado inclui o deslocamento de fuso horário. datetimeoffset(7) Não determinístico
SYSUTCDATETIME SYSUTCDATETIME ( ) Retorna um valor datetime2(7) que contém a data e hora do computador no qual a instância de SQL Server está sendo executada. A função retorna os valores de data e hora 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 Retornar valor Tipo de dados de retorno Determinismo
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Retorna um valor datetime que contém a data e hora do computador no qual a instância de SQL Server é executada. O valor retornado não inclui a compensação de fuso horário. datetime Não determinístico
GETDATE GETDATE ( ) Retorna um valor datetime que contém a data e hora do computador no qual a instância de SQL Server é executada. O valor retornado não inclui a compensação de fuso horário. datetime Não determinístico
GETUTCDATE GETUTCDATE ( ) Retorna um valor datetime que contém a data e hora do computador no qual a instância de SQL Server é executada. A função retorna os valores de data e hora como hora UTC (Tempo Universal Coordenado). datetime Não determinístico

Funções que retornam partes de data e hora

Função Sintaxe Retornar valor Tipo de dados de retorno Determinismo
DATE_BUCKET 0DATE_BUCKET ( datepart, number, date, origin ) Retorna um valor correspondente ao início de cada bucket de data e hora do carimbo de data/hora definido pelo parâmetro origin ou o valor de origem padrão de 1900-01-01 00:00:00.000 se o parâmetro de origem não for especificado. O tipo de retorno depende do argumento fornecido para date. Não determinístico
DATENAME DATENAME ( datepart, date ) Retorna uma cadeia de caracteres que representa o datepart especificado da data especificada. nvarchar Não determinístico
DATEPART DATEPART ( datepart, date ) Retorna um inteiro que representa o datepart especificado da data especificada. int Não determinístico
DAY DAY ( date ) Retorna um inteiro que representa a parte do dia da data especificada. int Determinística
MONTH MONTH ( date ) Retorna um inteiro que representa a parte do mês de uma data especificada. int Determinística
YEAR YEAR ( date ) Retorna um inteiro que representa a parte do ano de uma data especificada. int Determinística

Funções que retornam valores de data e hora de suas partes

Função Sintaxe Retornar valor 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 de datetime2 para a data e hora especificadas, com a precisão especificada. datetime2(precision) Determinística
DATETIMEFROMPARTS DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) Retorna um valor de 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 de datetimeoffset para a data e hora especificadas e com deslocamentos e precisão especificados. datetimeoffset(precision) Determinística
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) Retorna um valor de 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, com a precisão especificada. time(precision) Determinística

Funções que retornam valores de diferença de data e hora

Função Sintaxe Retornar valor Tipo de dados de retorno Determinismo
DATEDIFF DATEDIFF ( datepart, startdate, enddate ) Retorna o número de limites de datepart de data ou hora cruzados entre duas datas especificadas. int Determinística
DATEDIFF_BIG DATEDIFF_BIG ( datepart, startdate, enddate ) Retorna o número de limites de datepart de data ou hora cruzados entre duas datas especificadas. bigint Determinística

Funções que modificam valores de data e hora

Função Sintaxe Retornar valor Tipo de dados de retorno Determinismo
DATEADD DATEADD (datepart, number, date ) Retorna um novo valor de 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. O tipo de retorno é o tipo do argumento start_date ou, como alternativa, o tipo de dados 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 de DATETIMEOFFSET Determinística
TODATETIMEOFFSET TODATETIMEOFFSET (expression, time_zone) TODATETIMEOFFSET transforma um valor datetime2 em um valor datetimeoffset. TODATETIMEOFFSET interpreta o valor datetime2 no horário local, para o time_zone especificado. datetimeoffset com a precisão fracionária do argumento datetime Determinística

Funções que definem ou retornam funções de formato da sessão

Função Sintaxe Retornar valor 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 inserção de dados datetime ou smalldatetime. Não aplicável Não aplicável
@@LANGUAGE @@LANGUAGE Retorna o nome do idioma usado no momento. @@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 Retornar valor Tipo de dados de retorno Determinismo
ISDATE ISDATE ( expression ) Determina se uma expressão de entrada datetime ou smalldatetime tem um valor de data ou hora válido. int ISDATE só será determinística se usada 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.

Artigos relacionados a data e hora

Artigo Descrição
FORMAT Retorna um valor formatado com o formato e a cultura opcional especificados. Use a função FORMAT para formatação com reconhecimento de localidade de valores de data/hora e número como cadeias de caracteres.
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 uma linguagem a outra ou que dão suporte a várias linguagens.
Funções escalares ODBC (Transact-SQL) Fornece informações sobre as funções escalares ODBC disponíveis para uso em instruções Transact-SQL. Isso inclui funções de data e hora ODBC.
AT TIME ZONE (Transact-SQL) Fornece conversão de fuso horário.

Confira também