Partilhar via


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

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do AzureBanco de Dados SQL do Azure Synapse Analyticsno Microsoft Fabric

As secções deste artigo abrangem todos os tipos e funções de dados Transact-SQL data e hora.

Tipos de dados de data e hora

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

Tipo de dados Formato Alcance Exatidão Tamanho de armazenamento (bytes) Precisão de segundo fracionária definida pelo usuário Deslocamento de fuso horário
time HH:mm:ss[.nnnnnnn] 00:00:00.0000000 até 23:59:59.99999999 100 nanossegundos 3 a 5 Yes Não
date yyyy-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 yyy-mm-dd HH:mm:ss[.nnn] 1753-01-01 a 9999-12-31 0,00333 segundos 8 Não Não
datetime2 aaaa-MM-dd HH:mm:ss[.nnnnnnn] 0001-01-01 00:00:00.000000 até 9999-12-31 23:59:59.9999999 100 nanossegundos 6 a 8 Yes Não
datetimeoffset yyy-MM-dd HH:mm:ss[.nnnnnnn] [+|-]HH:mm 0001-01-01 00:00:00.000000 até 9999-12-31 23:59:59.99999999 (em UTC) 100 nanossegundos 8 a 10 Yes Yes

Observação

O tipo de dado Transact-SQL rowversion não é um tipo de data ou hora. Timestamp é um sinónimo obsoleto de rowversion.

Funções de data e hora

As tabelas seguintes listam as Transact-SQL funções de data e hora. Para obter mais informações sobre determinismo, consulte Deterministic and Nondeterministic Functions.

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

Transact-SQL deriva todos os valores de data e hora do sistema a partir do sistema operativo do computador onde a instância do SQL Server é executada.

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

Desde o SQL Server 2008 (10.0.x), o Motor de Base de Dados obtém os valores de data e hora através da utilização da API GetSystemTimeAsFileTime() do Windows. A precisão depende do hardware do computador e da versão do Windows em que a instância do SQL Server está a correr. Esta API tem uma precisão fixa a 100 nanossegundos. Use a API do Windows GetSystemTimeAdjustment() para determinar a precisão.

Função Sintaxe Valor de retorno Tipo de dados de retorno Determinismo
SYSDATETIME SYSDATETIME ( ) Devolve um valor datetime2(7) contendo a data e hora do computador onde a instância do SQL Server é executada. O valor devolvido não inclui o deslocamento do fuso horário. datetime2(7) Não determinístico
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Devolve um valor datetimeoffset(7) contendo a data e hora do computador onde a instância do SQL Server é executada. O valor devolvido inclui o deslocamento do fuso horário. datetimeoffset(7) Não determinístico
SYSUTCDATETIME SYSUTCDATETIME ( ) Devolve um valor datetime2(7) contendo a data e hora do computador onde a instância do SQL Server está a correr. A função devolve os valores de data e hora como hora UTC (Hora Universal Coordenada). datetime2(7) Não determinístico

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

Função Sintaxe Valor de retorno Tipo de dados de retorno Determinismo
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Devolve um valor de data-hora contendo a data e hora do computador onde a instância do SQL Server é executada. O valor devolvido não inclui o deslocamento do fuso horário. datetime Não determinístico
GETDATE GETDATE ( ) Devolve um valor de data-hora contendo a data e hora do computador onde a instância do SQL Server é executada. O valor devolvido não inclui o deslocamento do fuso horário. datetime Não determinístico
GETUTCDATE GETUTCDATE ( ) Devolve um valor de data-hora contendo a data e hora do computador onde a instância do SQL Server é executada. A função devolve os valores de data e hora como hora UTC (Hora Universal Coordenada). datetime Não determinístico
CURRENT_DATE CURRENT_DATE Devolve um valor de data que contém apenas a data do computador onde a instância do Motor de Base de Dados é executada. O valor devolvido não inclui a hora nem o deslocamento do fuso horário. date Não determinístico

Funções que retornam partes de data e hora

Função Sintaxe Valor de retorno Tipo de dados de retorno Determinismo
DATE_BUCKET DATE_BUCKET ( data,número, data, origem ) Devolve um valor correspondente ao início de cada balde de data-hora a partir do carimbo temporal definido pelo parâmetro de origem , ou ao 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 a data. Não determinístico
NOME DATADO NOME DATA( dataparte, data ) Devolve uma cadeia de caracteres que representa a data especificada da data especificada. nvarchar Não determinístico
DATEPART DATEPART ( datepart, date ) Devolve um número inteiro que representa a data especificada da data especificada. int Não determinístico
DATETRUNC DATETRUNC ( parte de data, data ) Devolve uma data de entrada truncada para uma data especificada. O tipo de retorno depende do argumento fornecido para a data. Não determinístico
DIA DAY ( data ) Devolve um inteiro que representa a parte do dia da data especificada. int Determinística
MÊS MÊS (data) Devolve um inteiro que representa a parte do mês de uma data especificada. int Determinística
ANO ANO ( data ) Devolve um inteiro que representa a parte do ano de uma data especificada. int Determinística

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

Função Sintaxe Valor de retorno Tipo de dados de retorno Determinismo
DATEFROMPARTS DATEFROMPARTS ( ano, mês, dia ) Devolve um valor de data para o ano, mês e dia especificados. date Determinística
DATETIME2FROMPARTS DATETIME2FROMPARTS ( ano, mês, dia, hora, minuto, segundos, frações, precisão ) Devolve um valor datetime2 para a data e hora especificadas, com a precisão especificada. datetime2(precisão) Determinística
DATA-HORADE DATETIMEFROMPARTS ( ano, mês, dia, hora, minuto, segundos, milissegundos ) Devolve um valor de data-hora para a data e hora especificadas. datetime Determinística
DATATEMPOOFFSETA das partes DATATEMPOOFFSETOFFSPARTS ( ano, mês, dia, hora, minuto, segundos, frações, hour_offset, minute_offset, precisão ) Devolve um valor de datatimeoffset para a data e hora especificadas, com os deslocamentos e precisão especificados. DateTimeOffset (precisão) Determinística
PEQUENO encontro a partir das partes PEQUENO encontro tempo das partes ( ano, mês, dia, hora, minuto ) Devolve um valor de pequena data-hora para a data e hora especificadas. smalldatetime Determinística
TIMEFROMPARTS TIMEFROMPARTS ( hora, minuto, segundos, frações, precisão ) Devolve um valor de tempo para o tempo especificado, com a precisão especificada. Tempo (precisão) Determinística

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

Função Sintaxe Valor de retorno Tipo de dados de retorno Determinismo
DATEDIFF DATEDIFF ( data,início,data de fim ) Devolve o número de limites data-data-parte, cruzados entre duas datas especificadas. int Determinística
DATEDIFF_BIG DATEDIFF_BIG ( data,início, data de fim ) Devolve o número de limites data-data-parte, cruzados entre duas datas especificadas. bigint Determinística

Funções que modificam valores de data e hora

Função Sintaxe Valor de retorno Tipo de dados de retorno Determinismo
DATAADD DATEADD (dataparte, número, data ) Devolve um novo valor de data-hora adicionando um intervalo à data-parte especificada da data especificada. O tipo de dado do argumento da data Determinística
EOMONTH EOMONTH ( start_date [ , month_to_add ] ) Devolve o último dia do mês contendo a data especificada, com um deslocamento opcional. O tipo de retorno é o tipo do argumento start_date , ou alternativamente, o tipo de dado data . Determinística
DESLOCAMENTO INTERRUPTOR SWITCHOFFSET (DATETIMEOFFSET,time_zone ) SWITCHOFFSET altera o deslocamento do fuso horário de um valor DATETIMEOFFSET e preserva o valor UTC. datatimeoffset com a precisão fracionária do DATETIMEOFFSET Determinística
TODATETIMEOFFSET TODATETIMEOFFSET (expressão, time_zone ) TODATETIMEOFFSET transforma um valor datetime2 num valor datetimeoffset. TODATETIMEOFFSET interpreta o valor datetime2 em tempo local, para o time_zone especificado. datatempodeslocado com a precisão fracionária do argumento data-hora Determinística

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

Função Sintaxe Valor de retorno Tipo de dados de retorno Determinismo
@@DATEFIRST @@DATEFIRST Devolve o valor atual, para a sessão, de SET DATEFIRST. tinyint Não determinístico
DEFINIR A DATA PRIMEIRO SET DATEFIRST { number | @number_var } Define o primeiro dia da semana para um número de 1 a 7. Não aplicável Não aplicável
FORMATO DE DATA DEFINIDO SET DATEFORMAT { format | @format_var } Define a ordem das datas (mês/dia/ano) para introduzir dados data-hora ou littledatetime . Não aplicável Não aplicável
@@LANGUAGE @@LANGUAGE Devolve o nome da língua atualmente utilizada. @@LANGUAGE não é uma função de data ou hora. No entanto, a definição de linguagem pode afetar a saída das funções de data. Não aplicável Não aplicável
LINGUAGEM DE CONJUNTOS LINGUAGEM DE CONJUNTO { [ N ] 'linguagem' | @language_var } Define o ambiente de linguagem para as mensagens de sessão e do sistema. SET LANGUAGE não é uma função de data ou hora. No entanto, a definição de linguagem afeta a saída das funções de data. Não aplicável Não aplicável
sp_helplanguage sp_helplanguage [ [ @language = ] 'linguagem' ] Devolve informações sobre formatos de data de todas as línguas suportadas. sp_helplanguage não é um procedimento de data ou hora registada. No entanto, a definição de linguagem 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 ( expressão ) Determina se uma expressão de entrada data-hora ou pequena tem um valor válido de data ou hora. int O ISDATE é determinístico usado apenas com a função CONVERT quando o parâmetro de estilo CONVERT é especificado, e quando o estilo não é igual a 0, 100, 9 ou 109.
Artigo Description
FORMATO Retorna um valor formatado com o formato especificado e a cultura opcional. Use a função FORMAT para formatação local dos valores de data/hora e números como cadeias de caracteres.
CAST e CONVERT Fornece informações sobre a conversão de valores de data e hora para e a partir de literais de cadeia, e outros formatos de data e hora.
Escrever declarações Transact-SQL internacionais Fornece diretrizes para a portabilidade de bases de dados e aplicações de bases de dados que utilizam Transact-SQL instruções de uma língua para outra, ou que suportam múltiplas línguas.
Funções Escalares ODBC Fornece informações sobre funções escalares ODBC disponíveis para utilização em instruções Transact-SQL. Inclui funções de data e hora ODBC.
NO FUSO HORÁRIO Fornece conversão de fuso horário.