Usando o tipo de dados Data/Hora Estendida

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021

O tipo de dados Data/Hora Estendida armazena informações de data e hora e é semelhante ao tipo de dados Data/Hora, mas fornece um intervalo de datas maior, uma precisão fracionária maior e a compatibilidade com o tipo de datos datetime2 do SQL Server. Ao importar ou vincular dados do Access para o SQL Server, você poderá mapear um campo de Data/Hora Estendida do Access para uma coluna datetime2 do SQL Server. Para obter mais informações, veja datetime2 (Transact-SQL).

Aviso intervalo alargado de data/hora Quando cria expressões e utiliza funções de data/hora com base no tipo de dados Data/Hora Prolongada no Access, pode perder a precisão nos cálculos ou encontrar outros problemas com os resultados. Estamos cientes do problema e planejamos dar um suporte melhor a expressões e funções em uma versão futura. Como solução alternativa, você pode criar uma consulta passagem para usar a expressão equivalente do SQL Server e as funções de data/hora. Para saber mais, confira Comparar o SQL do Access com o SQL Server TSQL.

Neste artigo

Comparando os tipos de dados Data/Hora e Data/Hora Estendida Usando o tipo de dados Data/Hora Estendida Considerações de retrocompatibilidade Usando o tipo de dados Data/Hora Estendida como uma cadeia de caracteres no VBA

Comparando os tipos de dados Data/Hora e Data/Hora Estendida

As tabelas a seguir resume importantes diferenças entre os dois tipos de dados.

Atributo Data/Hora Data/Hora Estendida
Valor Mínimo 100-01-01 00:00:00 0001-01-01 00:00:00
Valor Máximo 9999-12-31 23:59:59.999 9999-12-31 23:59:59.9999999
Precisão 0,001 segundos 1 nanossegundo
Tamanho Ponto flutuante de precisão dupla Cadeia de caracteres codificada de 42 bytes

Início da Página

Usando o tipo de dados Data e Hora Estendida

As informações a seguir descrevem considerações importantes sobre o uso.

Vista de Estrutura da Tabela Para tirar partido do intervalo de dados maior e da maior precisão, pode adicionar um campo a uma tabela do Access. Você também pode converter um tipo de dados Data/Hora em Data/Hora Estendida no modo de exibição de design de tabela. O uso desse tipo de dados como um campo de chave primária também tem suporte. Para obter mais informações, confira Criar uma tabela e adicionar campos.

Introduzir a data e hora Introduzir valores de data e hora é semelhante ao tipo de dados Data/Hora, exceto que também pode introduzir um nanossegundo fracionário. Por exemplo:

  • Formato de entrada: mm/dd/aaaa hh:mm:ss.nnnnnnn
  • Exemplo: 06/15/1215 09:25:3.234

Se houver mais de sete nanosegundos fracionais, eles serão arredondados para sete dígitos. Para controlar a apresentação dos nanossegundos fracionários, abra a Tabela, no friso selecione Campos e, no grupo Formatação, selecione Aumentar Imagem do BotãoCasas Decimais ou Imagem do BotãoDiminuir Casas Decimais.

Formatação Os tipos de dados Data/Hora e Data/Hora Prolongada utilizam cadeias de formatação padrão semelhantes de Data Geral, Data Por Extenso, Data Média, Data Abreviada, Hora Longa, Hora Média e Hora Abreviada e ambas suportam formatação personalizada. Para o tipo de dados Data/Hora Estendida, os formatos padrão baseados em tempo também oferecem suporte à precisão fracionária de nanossegundos. A formatação do tipo de dados Data/Hora Estendida é padronizada para os formatos Data Geral e Hora Detalhada fe acompanha as opções especificadas nas configurações regionais do Windows. Você também pode controlar a formatação da precisão fracionária usando a propriedade Casas Decimais para especificar o número de dígitos à direita da vírgula decimal (1-7).

Ligar e importar Também pode ligar ou importar a partir de bases de dados com um tipo de dados correspondente, como o tipo de dados SQL Server datetime2. Os bancos de dados do SQL Server versão 2014 ou posterior são suportados. O tipo de dados Data/Hora Estendida exige o uso do driver ODBC da Microsoft para SQL Server 11 ou posterior. Recomendamos que utilize o Microsoft ODBC Driver 13.1 para SQL Server. O uso do OLE DB também é suportado. Para obter mais informações, veja Suporte de Tipo de Dados para Melhoramentos de Data e Hora ODBC e Utilizar Funcionalidades de Data e Hora Avançadas (OLE DB).

Formulários e relatórios Pode adicionar o tipo de dados Data/Hora Prolongada a um formulário ou relatório. Em um formulário, você pode usar o seletor de data e a máscara de entrada para inserir uma data com um intervalo maior, mas não com a precisão fracionária de nanossegundos.

Suporte de Expressões O tipo de dados Data/Hora Prolongada suporta as Funções de Agregação do SQL e a avaliação de expressões. Por exemplo, usando LoggedDateTime como um campo com o tipo de dados Data/Hora Estendida:

Tarefa Exemplo Resultado
Localizar o valor mínimo Mín (LoggedDateTime) A data e a hora mais antigas dentro do intervalo
Extrair o mês Mês (LoggedDateTime) O nome do mês, por exemplo, janeiro
Adicionar um dia [LoggedDateTime] + 1 Terça-feira se tornará quarta-feira

Início da Página

Considerações sobre a compatibilidade com versões anteriores

O tipo de dados Data/Hora Estendida não é compatível com versões anteriores do Microsoft Access. Se o tipo for utilizado numa tabela local do Access, as versões do Access que não incluam a funcionalidade não conseguirão abrir a base de dados.

Pode ativar ou desativar o tipo de dados Data/Hora Prolongada para ligar e importar operações com a opção De Suporte data/Hora de Extensão de Dados da Opção de Acesso à Base de Dados Atualpara Tabelas Ligadas/Lmported. Confira mais informações em Definir opções do usuário para o banco de dados atual.

Início da Página

Usando o tipo de dados Data/Hora Estendida como uma cadeia de caracteres no VBA

Os seguintes exemplos de VBA usam os métodos DAO para exibir, inserir e avaliar o tipo de dados Data/Hora Estendida com base na tabela a seguir.

ID DTEData DTData
1 1/1/2 1:01:03.1234567 AM 1/1/2001

Nome da tabela: DTETable
Tipo de dados de ID: Numeração automática
Tipo de dados DTEData: Data/Hora Prolongada
Tipo de dados DTData: Data/Hora

Exemplo: Exibindo a data e a hora

O exemplo a seguir exibe a data e a hora. O formato usado é mm/dd/aaaa hh:mm:ss.nnnnnnn no relógio de 24 horas. O formato não é personalizável.


Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
    Debug.Print rs!DTETable
    rs.MoveNext
Loop

Resultado O Access é apresentado: 01/01/0002 01:01:03.1234567.

Exemplo: Inserindo a data e a hora

O exemplo a seguir insere a data e a hora usando um formato de cadeia de caracteres. Todos os formatos de data e hora padrão são suportados.


Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
    .AddNew
    ![DTEData] = "1/1/9999 1:1:1.0123 AM"
    ![DTData] = #1/1/2001#
    .Update
End With

Resultado O Access adiciona uma nova linha (ID = 2):

ID DTEData DTData
1 1/1/2 1:01:03.1234567 AM 1/1/2001
2 1/1/9999 1:01:01.0123000 AM 1/1/2001

Exemplo: Avaliando uma expressão de consulta

O exemplo a seguir usa a Função Dia para extrair o número do dia dos campos data e hora.


Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
    Debug.Print "The day of the month is: "&rs!day
    rs.MoveNext
Loop

Resultado O Access é apresentado:

O dia do mês é: 1
O dia do mês é: 1

Funções que funcionam com Data/Hora Prolongada em expressões de consulta

As seguintes funções funcionam com Data/Hora Prolongada em expressões de consulta:
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff e DatePart.

Além disso, existem versões expandidas de algumas funções que não podem utilizar o tipo de argumento para determinar que o cálculo deve produzir um valor Data/Hora Prolongada. São elas:

DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended e TimeExtended.

Estas funções funcionam da mesma forma que a função sem "Extended" no final, mas devolvem um valor Data/Hora Prolongada, em vez de um valor de Data/Hora.

Tenha em atenção que o VBA não foi modificado, as novas funções não serão reconhecidas no código VBA e as funções existentes não funcionarão com os valores Data/Hora Prolongada.

Exemplo

Consulta original:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

, Format([OrderDate],"Short Date") AS OrderDateOnly_Format

From tblOrders

Agora, altere DateValue([OrderDate]) para DateValueExtended([OrderDate]), que irá corrigir a primeira expressão.

Tenha em atenção que o Access não processa a função Format para as colunas Data/Hora Prolongada; só pode definir a propriedade Formatar para a coluna.

Por conseguinte, se utilizar:


SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate

FROM Table1;

E defina a propriedade Formatar da segunda coluna como "Data Abreviada", obterá os resultados pretendidos.

Início da Página

Confira também

Introdução a tipos de dados e propriedades de campo

Formatar um campo de data e hora

Criar ou excluir um campo de data e hora