Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Banco de Dados SQL no Microsoft Fabric
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
-
Funções de data e hora
- Funções que retornam valores de data e hora do sistema
- Funções que retornam partes de data e hora
- Funções que retornam valores de data e hora de suas partes
- Funções que retornam valores de diferença de data e hora
- Funções que modificam valores de data e hora
- Funções que definem ou retornam funções de formato da sessão
- Funções que validam valores de data e hora
- Artigos relacionados a data e hora
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 [.nnnnnnnn] | 00:00:00.0000000 a 23:59:59.9999999 | 100 nanossegundos | 3 a 5 | Sim | 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 | 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 | Sim |
Observação
O tipo de dados rowversion Transact-SQL não é um tipo de dados de data ou 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. Para obter mais informações sobre determinismo de funções, veja Funções determinísticas e não determinísticas.
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
Desde o SQL Server 2008 (10.0.x), o Mecanismo de Banco de Dados 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 |
| CURRENT_DATE | CURRENT_DATE | Retorna um valor de data que contém apenas a data do computador no qual a instância do Mecanismo de Banco de Dados é executada. O valor retornado não inclui a hora e o deslocamento de fuso horário. | date | 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 | NOME DATA( dataparte, data ) | Retorna uma cadeia de caracteres que representa o datepart especificado da data especificada. | nvarchar | Não determinístico |
| DATEPART | DATEPART ( datapart, date ) | Retorna um inteiro que representa o datepart especificado da data especificada. | int | Não determinístico |
| DATETRUNC | DATETRUNC ( data,data ) | Retorna uma data de entrada truncada para um datepart especificado. | O tipo de retorno depende do argumento fornecido para date. | Não determinístico |
| DAY | DAY ( data ) | Retorna um inteiro que representa a parte do dia da data especificada. | int | Determinística |
| MONTH | MÊS ( data ) | Retorna um inteiro que representa a parte do mês de uma data especificada. | int | Determinística |
| YEAR | ANO ( data ) | 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 ( ano, mês, dia ) | 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 | SMALL datatimetimefromparts ( ano, mês, dia, hora, minuto ) | Retorna um valor de smalldatetime para a data e a hora especificadas. | smalldatetime | Determinística |
| TIMEFROMPARTS | TIMEFROMPARTS ( hora, minuto, segundos, frações, precisão ) | 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 ( data,início, data de fim ) | Retorna o número de limites de datepart de data ou hora cruzados entre duas datas especificadas. | int | Determinística |
| DATEDIFF_BIG | DATEDIFF_BIG ( data,início, fim ) | 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 (dataparte, número, data ) | 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 |
| DEFINIR A DATA PRIMEIRO | SET DATEFIRST { número | @number_var } | Define o primeiro dia da semana como um número de 1 a 7. | Não aplicável | Não aplicável |
| FORMATFORMATO DE DATA DEFINIDO | SET DATEFORMAT { formato | @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 |
| LINGUAGEM DE CONJUNTOS | SET IDIOMA { [ N ] 'idioma' | @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 = ] 'linguagem' ] | 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 ( expressão ) | 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 | 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 | Fornece informações sobre as funções escalares ODBC disponíveis para uso em instruções Transact-SQL. Inclui funções de data e hora ODBC. |
| NO FUSO HORÁRIO | Fornece conversão de fuso horário. |