Usar el tipo de datos de Fecha y hora extendida

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021

El tipo de datos de Fecha y hora extendida almacena información de fecha y hora y es similar al tipo de datos de fecha y hora, pero ofrece un intervalo de fechas mayor, una precisión decimal mayor y la compatibilidad con el tipo de fecha datetime2 de SQL Server. Cuando importa o vincula datos de Access a SQL Server, puede asignar constantemente un campo de Fecha y hora extendida de Access a una columna datetime2 de SQL Server. Para obtener más información, vea datetime2 (Transact-SQL).

Advertencia de intervalo extendido de fecha y hora Al crear expresiones y usar funciones de fecha y hora basadas en el tipo de datos Fecha y hora extendida en Access, puede perder precisión en los cálculos o encontrar otros problemas con los resultados. Somos conscientes de este problema y tenemos previsto ofrecer mejor soporte para expresiones y funciones en una versión futura. Como solución alternativa, puede Crear una consulta de paso para usar la expresión equivalente de SQL Server y las funciones de fecha y hora. Para más información, vea Comparar Access SQL con SQL Server TSQL.

En este artículo

Comparación de los tipos de datos de Fecha y hora y de Fecha y hora extendida Usar el tipo de datos de Fecha y hora extendida Consideraciones de compatibilidad con versiones anteriores Usar el tipo de datos Fecha y hora extendida como una cadena en VBA

Comparación de los tipos de datos de Fecha y hora y de Fecha y hora extendida

En la tabla siguiente se resumen las diferencias importantes entre los dos tipos de datos.

Attribute Fecha y hora Fecha y hora extendida
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
Precisión 0,001 segundos 1 nanosegundo
Tamaño Punto flotante de doble precisión Cadena codificada de 42 bytes

Principio de página

Usar el tipo de datos de Fecha y hora extendida

La siguiente información describe consideraciones de uso importantes.

Vista Diseño de tabla Para aprovechar el mayor rango de datos y la mayor precisión, puede agregar un campo a una tabla de Access. También puede convertir un tipo de datos de Fecha y hora a Fecha y hora extendida en la vista Diseño de tabla. También se admite el uso de este tipo de datos como un campo de clave principal. Para más información, vea Crear una tabla y agregar campos.

Introducción de la fecha y hora Escribir valores de fecha y hora es similar al tipo de datos fecha y hora, excepto que también se puede introducir un nanosegundo fraccionario. Por ejemplo:

  • Formato de entrada: dd/mm/aaaa hh:mm:ss,nnnnnnn
  • Ejemplo: 15/06/1215 09:25:3,234

Si hay más de 7 nanosegundos decimales, se redondean a 7 dígitos. Para controlar la visualización de los nanosegundos fraccionarios, abra la tabla, en la cinta seleccione Campos y, en el grupo Formato, seleccione Aumentar imagen del botóndecimales o Disminuir imagen del botónDecimales .

Formato Tanto los tipos de datos de fecha y hora como de fecha y hora extendida usan cadenas de formato estándar similares de Fecha general, Fecha larga, Fecha mediana, Fecha corta, Hora larga, Hora mediana y Hora corta , y ambas admiten formato personalizado. Para el tipo de datos Fecha y hora extendida, los formatos estándar basados en tiempo también admiten precisión decimal para nanosegundos. El formato del tipo de datos de Fecha y hora extendida predeterminado es Fecha general y Hora larga y sigue las opciones que se especifican en la Configuración regional de Windows. También puede controlar el formato de precisión decimal mediante la propiedad Posiciones decimales para especificar el número de dígitos a la derecha de la coma decimal (1-7).

Vincular e importar También puede vincular o importar desde bases de datos con el tipo de datos correspondiente, como el tipo de datos SQL Server datetime2. Se admiten las bases de datos de la versión 2014 o posterior de SQL Server. El tipo de datos de Fecha y hora extendida requiere el uso de Microsoft ODBC Driver for SQL Server 11 o posterior. Se recomienda usar Microsoft ODBC Driver 13.1 para SQL Server. El uso de OLE DB también es compatible. Para obtener más información, vea Compatibilidad con tipos de datos para mejoras de fecha y hora ODBC y Usar características mejoradas de fecha y hora (OLE DB).

Formularios e informes Puede agregar el tipo de datos Fecha y hora extendida a un formulario o informe. En un formulario, puede usar el selector de fecha y la máscara de entrada para introducir una fecha con el rango más amplio, pero no la precisión decimal en nanosegundos.

Compatibilidad con expresiones El tipo de datos Fecha y hora extendida admite funciones de agregado de SQL y evaluación de expresiones. Por ejemplo, si usa LoggedDateTime como campo con el tipo de datos de Fecha y hora extendida:

Tarea Ejemplo Resultado
Buscar el valor mínimo Min(LoggedDateTime) La fecha y la hora más temprana en el rango
Extraer el mes Month(LoggedDateTime) El nombre del mes, como enero
Agregar un día [LoggedDateTime] + 1 Martes se convertiría en miércoles

Principio de página

Consideraciones de la compatibilidad con versiones anteriores

El tipo de datos Fecha y hora extendida no es compatible con versiones anteriores de Microsoft Access. Si el tipo se usa en una tabla de Access local, las versiones de Access que no incluyan la característica no podrán abrir la base de datos.

Puede habilitar o deshabilitar el tipo de datos De fecha y hora extendida para las operaciones de vinculación e importación con la opción acceso a la base de datos actualque admite el tipo de datos de fecha y hora extendida para tablas vinculadas o lmportadas. Para obtener más información, consulte Configurar opciones de usuario para la base de datos activa.

Principio de página

Usar el tipo de datos Fecha y hora extendida como una cadena en VBA

Los siguientes ejemplos de VBA usan métodos de DAO para mostrar, escribir y evaluar el tipo de datos de Fecha y hora extendida basado en la tabla siguiente.

ID DTEData DTData
1 1/1/2 1:01:03,1234567 1/1/2001

Nombre de tabla: DTETable
Tipo de datos id.: Autonumeración
Tipo de datos DTEData: Fecha y hora extendida
Tipo de datos DTData: Fecha y hora

Ejemplo: Mostrar la fecha y la hora

En el ejemplo siguiente se muestran la fecha y la hora. El formato utilizado es dd/mm/aaaa hh:mm:ss,nnnnnnn en el reloj de 24 horas. El formato no se puede personalizar.


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 Access muestra: 01/01/0002 01:01:03.1234567.

Ejemplo: Especificar la fecha y la hora

El ejemplo siguiente introduce la fecha y la hora con un formato de cadena. Se admiten todos los formatos de fecha y hora estándar.


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 Access agrega una nueva fila (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

Ejemplo: Evaluar una expresión de consulta

En el ejemplo siguiente se usa la Función día para extraer el número de día de los campos de fecha y 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 Access muestra:

El día del mes es: 1
El día del mes es: 1

Funciones que funcionan con fecha y hora extendida en expresiones de consulta

Las funciones siguientes funcionan con fecha y hora extendida en expresiones de consulta:
​​​​​​​
Año, Mes, Día laborable, Día, Hora, Minuto, Segundo, AgregFecha, Fecha y ParcFecha.

Además, hay versiones extendidas de algunas funciones que no pueden usar el tipo de argumento para determinar que el cálculo debe generar un valor de fecha y hora extendida. Estos son:

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

Estas funciones funcionan del mismo modo que la función sin "Extendido" al final, pero devuelven un valor de Fecha y hora extendida, en lugar de un valor de fecha y hora.

Tenga en cuenta que VBA no se ha modificado, las nuevas funciones no se reconocerán en el código vba y las funciones existentes no funcionarán con valores extendidos de fecha y hora.

Ejemplo

Consulta original:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Ahora, cambie DateValue([OrderDate]) por DateValueExtended([OrderDate]), que corregirá la primera expresión.

Tenga en cuenta que Access no controla la función Formato para las columnas de fecha y hora extendida; solo tiene que establecer la propiedad Formato para la columna.

Por lo tanto, si usa:


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

FROM Table1;

Y establezca la propiedad Formato de la segunda columna en "Fecha corta", obtendrá los resultados que desee.

Principio de página

Vea también:

Introducción a los tipos de datos y las propiedades de los campos

Aplicar formato a un campo de fecha y hora

Crear o eliminar un campo de fecha y hora