Utilizar o tipo de dados Data/Hora Prolongada

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

O tipo de dados Data/Hora Prolongada armazena informações de data e hora e é semelhante ao tipo de dados Data/Hora, mas fornece um intervalo de datas maior, uma maior precisão fracionária e compatibilidade com o tipo de data datetime2 do SQL Server. Quando importa ou liga dados do Access ao SQL Server, pode mapear consistentemente um campo de Data/Hora Prolongada do Access a uma coluna datetime2 do SQL Server. Para obter mais informações, consulte datetime2 (Transact-SQL).

Intervalo de Data/Hora Prolongada Aviso Quando criar expressões e utilizar funções data/hora com base no tipo de dados Data/Hora Prolongada no Access, poderá perder precisão nos cálculos ou deparar-se com outros problemas com os resultados. Estamos cientes desta questão e planeamos suportar melhor as expressões e funções numa versão futura. Como solução alternativa, pode Criar uma consulta pass-through para utilizar a expressão equivalente do SQL Server e funções de data/hora. Para obter mais informações, consulte Comparação do SQL do Access com o TSQL do SQL Server.

Neste artigo

Comparação dos tipos de dados Data/Hora e Data/Hora Prolongada Utilizar o tipo de dados Data/Hora Prolongada Considerações de retrocompatibilidade Utilizar o tipo de dados Data/Hora Prolongada como uma cadeia em VBA

Comparação dos tipos de dados Data/Hora e Data/Hora Prolongada

As seguintes tabelas resumem as diferenças importantes entre os dois tipos de dados.

Atributo Data/Hora Data/Hora Prolongada
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
Dimensão Ponto flutuante de dupla precisão Cadeia codificada de 42 bytes

Início da Página

Utilizar o tipo de dados Data/Hora Prolongada

As seguintes informações descrevem considerações importantes de utilização.

Vista de estrutura da tabela Para tirar partido do maior intervalo de dados e maior precisão, pode adicionar um campo a uma tabela do Access. Também pode converter um tipo de dados Data/Hora em Data/Hora Prolongada na vista Estrutura da Tabela. A utilização deste tipo de dados como campo de chave primária também é suportada. Para obter mais informações, consulte Criar uma tabela e adicionar campos.

Introduzir a data e hora A introdução de 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: dd/mm/aaaa hh:mm:ss,nnnnnnn
  • Exemplo: 15/06/1215 09:25:3,234

Se existirem mais de 7 nanossegundos fracionários, são arredondados para 7 dígitos. Para controlar a visualização dos nanossegundos fracionários, abra a Tabela, no friso selecione Campos e, no grupo Formatação, selecione a imagem do botão Aumentar Casas Decimais ou a imagem do botãoDiminuir Casas Decimais.

Formatação Ambos os tipos de dados Data/Hora e Data/Hora Prolongada utilizam cadeias de formatação padrão semelhantes: Data Geral, Data Longa, Data Normal, Data Abreviada, Hora Completa, Hora Normal e Hora Abreviada e ambos suportam formatação personalizada. Para o tipo de dados Data/Hora Prolongada, os formatos padrão baseados no tempo também suportam precisão fracionária para nanossegundos. O tipo de dados Data/Hora Prolongada tem a predefinição de formato Data Geral e Hora Completa e segue as opções especificadas nas definições regionais do Windows. Também pode controlar a formatação da precisão fracionária através da propriedade Casas Decimais para especificar o número de dígitos à direita da vírgula (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. São suportadas as bases de dados da versão de 2014 ou posteriores do SQL Server. O tipo de dados Data/Hora Prolongada necessita da utilização do Microsoft ODBC Driver para SQL Server 11 ou posterior. Recomendamos a utilização do Microsoft ODBC Driver 13.1 para SQL Server. A utilização do OLE DB também é suportada. Para obter mais informações, consulte Suporte de tipo de dados para melhorias de data e hora ODBC e Usar recursos avançados de data e hora (OLE DB).

Formulários e relatórios Pode adicionar o tipo de dados Data/Hora Prolongada a um formulário ou relatório. Num formulário, pode utilizar o seletor de datas e a máscara de introdução para introduzir uma data com um intervalo maior, mas não a precisão fracionária para nanossegundos.

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

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

Início da Página

Considerações de Retrocompatibilidade

O tipo de dados Data/Hora Prolongada não é compatível com as versões anteriores do Microsoft Access. Se o tipo for utilizado numa tabela do Access local, 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 operações de ligação e importação com a opção Acesso à Base de Dados AtualSuporte ao Tipo de Dados de Data/Hora Prolongada para Tabelas Ligadas/transferidas. Para obter mais informações, consulte Definir opções do utilizador para a base de dados atual.

Início da Página

Utilizar o tipo de dados Data/Hora Prolongada como uma cadeia em VBA

Os exemplos de VBA que se seguem utilizam métodos DAO para visualizar, introduzir e avaliar o tipo de dados Data/Hora Prolongada com base na tabela abaixo.

ID DTEData DTData
1 1/1/2 1:01:03,1234567 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: Mostrar a data e hora

O exemplo a seguir mostra a data e a hora. O formato utilizado é dd/mm/aaaa hh:mm:ss,nnnnnnn em 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 apresenta: 01/01/0002 01:01:03,1234567.

Exemplo: Introduzir a data e hora

O exemplo seguinte introduz a data e a hora com um formato de cadeia. Todos os formatos padrão de data e hora 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 1/1/2001
2 1/1/9999 1:01:01,0123000 1/1/2001

Exemplo: Avaliar uma expressão de consulta

O exemplo seguinte utiliza a Função Dia para extrair o número do dia dos campos de 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 apresenta:

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

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

As seguintes funções trabalham com Data/Hora Prolongada em expressões de consulta:
​​​​​​​
Ano, Mês, Dia da Semana, Dia, Hora, Minuto, Segundo, SomData, DateDiff e PartData.

Além disso, existem versões Expandidas de algumas funções que não conseguem utilizar o tipo de argumento para determinar se o cálculo deve produzir um valor de Data/Hora Prolongada. Isto dá-se:

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

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

Tenha em atenção que o VBA não foi modificado, que as novas funções não serão reconhecidas no código VBA e que as funções existentes não funcionarão com valores de 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]), o que irá corrigir a primeira expressão.

Tenha em atenção que o Access não utiliza a função Formatar para as colunas de Data/Hora Prolongada; pode simplesmente definir a propriedade Formato para a coluna.

Consequentemente, se utilizar:


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

FROM Table1;

Defina a propriedade Formato para a segunda coluna como "Data Abreviada", obterá os resultados que pretende.

Início da Página

Consulte Também

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

Formatar um campo de data e hora

Criar ou eliminar um campo de data e hora