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 |
---|---|---|---|---|---|---|
hh:mm:ss[. nnnnnnn] |
00:00:00.0000000 a 23:59:59.9999999 |
100 nanossegundos |
3 a 5 |
Sim |
Não |
|
AAAA-MM-DD |
0001-01-01 a 9999-12-31 |
1 dia |
3 |
Não |
Não |
|
AAAA-MM-DD hh:mm:ss |
1900-01-01 a 2079-06-06 |
1 minuto |
4 |
Não |
Não |
|
AAAA-MM-DD hh:mm:ss[. nnn] |
1753-01-01 a 9999-12-31 |
0,00333 segundo |
8 |
Não |
Não |
|
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 |
|
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 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 () |
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 ( ) |
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 ( ) |
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 |
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 ( ) |
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 ( ) |
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 ( datepart , date ) |
Retorna uma cadeia de caracteres que representa a datepart especificada da data especificada. |
nvarchar |
Não determinístico |
|
DATEPART ( datepart , date ) |
Retorna um inteiro que representa a datepart especificada da date especificada. |
int |
Não determinístico |
|
DAY ( date ) |
Retorna um inteiro que representa a parte do dia da date especificada. |
int |
Determinística |
|
MONTH ( date ) |
Retorna um inteiro que representa a parte do mês de uma date especificada. |
int |
Determinística |
|
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 ( year, month, day ) |
Retorna um valor de date para o ano, o mês e o dia especificados. |
date |
Determinística |
|
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 ( year, month, day, hour, minute, seconds, milliseconds ) |
Retorna um valor datetime para a data e a hora especificadas. |
datetime |
Determinística |
|
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 ( year, month, day, hour, minute ) |
Retorna um valor smalldatetime para a data e a hora especificadas. |
smalldatetime |
Determinística |
|
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 ( 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 (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 ( 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 (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 (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 |
Retorna o valor atual, da sessão, de SET DATEFIRST. |
tinyint |
Não determinístico |
|
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 { 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 |
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 { [ 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 [ [ @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 ( 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 |
---|---|
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. |
|
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. |
|
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. |