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 saber mais, confira datetime2 (Transact-SQL).
Aviso Ao criar expressões e usar as funções de data/hora com base no tipo de dados Data/Hora Estendida no Access, você poderá perder a precisão dos cálculos ou encontrar outros problemas nos 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 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 |
Usando o tipo de dados Data e Hora Estendida
As informações a seguir descrevem considerações importantes sobre o uso.
Modo Design da Tabela Para aproveitar o intervalo de dados maior e uma precisão maior, você 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.
Inserindo a data e a hora Inserir valores de data e hora é semelhante ao tipo de dados Data/Hora, exceto pelo fato de você também poder inserir um nanosegundo 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 exibição das nanossegundos, abra a tabela, na faixa de opções, selecione campose, no grupo Formatação, selecione Aumentar casas decimais ou Diminuir casas decimais .
Formatação Os tipos de dados de Data/Hora e Data/Hora Estendida usam cadeias de caracteres de formatação padrão similares de Data Geral, Data Detalhada, Data Média, Data Abreviada, Hora Detalhada, Hora Média e Hora Abreviada e oferecem suporte para a 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).
Vincular e importar Você também pode vincular ou importar de bancos de dados com um tipo de dados correspondente, como o tipo de dados datetime2 do SQL Server. 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 usar o Microsoft ODBC Driver 13.1 para SQL Server. O uso do OLE DB também é suportado. Para obter mais informações, confira 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 Você pode adicionar o tipo de dados Data/Hora Estendida 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 à Expressão O tipo de dados Data/Hora Estendida é compatível com Funções Agregadas do SQL e avaliação de expressão. 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 |
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 usado em uma tabela de acesso local, as versões do Access que não incluem o recurso não poderão abrir o banco de dados.
Você pode habilitar ou desabilitar o tipo de dados estendido data/hora para vincular e importar operações com a opção Acesso de Banco de Dados AtualSuporte a Data/Hora Tipo de Dados Estendidos para Tabelas Vinculadas/lmportadas. Confira mais informações em Definir opções do usuário para o banco de dados atual.
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 de tabela: DTETable
tipo de dados de ID: Numeração automática tipo de dados DTEData : Data/hora Estendida tipo de dados DTData: Data/HoraExemplo: 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 exibe: 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 exibe:
O dia do mês é: 1
O dia do mês é: 1Confira também
Introdução a tipos de dados e propriedades de campo