“日期/时间已延长”数据类型存储日期和时间信息,与“日期/时间”数据类型类似,但是它提供更大的日期范围、更高的小数精度并且与 SQL Server datetime2 日期类型兼容。 当你将 Access 数据导入或链接到 SQL Server 时,可以一致地将 Access“日期/时间已延长”字段映射到 SQL Server datetime2 列。 有关详细信息,请参阅 datetime2 (Transact-SQL)

“日期/时间已延长”范围

警告    当你基于 Access 中的“日期/时间已延长”数据类型创建表达式并使用日期/时间函数时,可能会失去计算精度或遇到其他问题。 我们已经意识到此问题,并计划在即将发布的版本中更好地支持表达式和函数。 解决方法是,你可以创建一个传递查询来使用等效的 SQL Server 表达式和日期/时间函数。 有关详细信息,请参阅将 Access SQL 与 SQL Server TSQL 进行比较

本文内容

比较“日期/时间”和“日期/时间已延长”数据类型

使用“日期/时间已延长”数据类型

向后兼容性注意事项

在 VBA 中将“日期/时间已延长”数据类型用作字符串

比较“日期/时间”和“日期/时间已延长”数据类型

下表总结了两种数据类型之间的重要差异。

属性

日期/时间

日期/时间已延长

最小值

100-01-01 00:00:00

0001-01-01 00:00:00

最大值

9999-12-31 23:59:59.999

9999-12-31 23:59:59.9999999

准确度

0.001 秒

1 纳秒

大小

双精度浮点

42 字节编码字符串

返回页首

使用“日期/时间已延长”数据类型

以下信息介绍了重要的使用注意事项。

表设计视图    若要利用更大的数据范围和更高的精度,可以向 Access 表中添加一个字段。 还可以在表设计视图中将“日期/时间”转换为“日期/时间已延长”数据类型。 也支持将此数据类型用作主键字段。 有关详细信息,请参阅创建表并添加字段

输入日期和时间   输入日期和时间值与“日期/时间”数据类型相似,不同之处在于你还可以输入小数纳秒。 例如:

  • 输入格式:mm/dd/yyyy hh:mm:ss.nnnnnnn

  • 示例:06/15/1215 09:25:3.234

如果小数纳秒超过 7 位数,则将其舍入为 7 位数。 要控制小数纳秒的显示,请打开表格,在功能区上选择“字段”,然后在“格式”组中选择“增加小数位数按钮图像”或“减少小数位数按钮图像”。

格式    “日期/时间”和“日期/时间已延长”数据类型使用类似的标准格式字符串,例如“常规日期”、“长日期”、“中日期”、“短日期”、“长时间”、“中时间”和“短时间”均支持自定义格式。 对于“日期/时间已延长”数据类型,基于时间的标准格式还支持纳秒的小数精度。 “日期/时间已延长”数据类型的格式默认为“常规日期”和“长时间”格式,并遵循“Windows 区域设置”中指定的选项。 还可通过使用“小数位数”属性指定小数点右边的数字位数 (1-7) 来控制小数精度的格式。

链接和导入    还可通过相应的数据类型(如 SQL Server datetime2 数据类型)链接到数据库或从数据库导入。 支持 SQL Server 2014 版或更高版本的数据库。 “日期/时间已延长”数据类型要求使用适用于 SQL Server 11 或更高版本的 Microsoft ODBC 驱动程序。 建议使用适用于 SQL Server 的 Microsoft ODBC Driver 13.1。 还支持使用 OLE DB。 有关详细信息,请参阅对 ODBC 日期和时间改进的数据类型支持使用增强的日期和时间功能 (OLE DB)

表单和报表    可以将“日期/时间已延长”数据类型添加到表单或报表中。 在表单中,可以使用日期选取器和输入掩码输入较大范围的日期,但不能输入纳秒的小数精度。

表达式支持   “日期/时间已延长”数据类型支持 SQL 聚合函数和表达式求值。 例如,使用 LoggedDateTime 作为数据类型为“日期/时间已延长”的字段:

任务

示例

结果

查找最小值

Min(LoggedDateTime)

范围内的最早日期和时间

提取月份

Month(LoggedDateTime)

月份名称,如“一月”

添加一天

[LoggedDateTime]+1

星期二将变成星期三

返回页首

后向兼容性注意事项

“日期/时间已延长”数据类型与 Microsoft Access 的早期版本不兼容。 如果在本地 Access 表中使用类型,则不包含该功能的 Access 版本将无法打开数据库。

可以使用"当前数据库访问"选项"支持链接表/lmported 表的日期/时间延长数据类型"来启用或禁用"日期/时间已延长"数据类型链接和导入操作。 有关详细信息,请参阅设置当前数据库的用户选项

返回页首

在 VBA 中将“日期/时间已延长”数据类型用作字符串

下面的 VBA 示例使用 DAO 方法根据下表显示、输入“日期/时间已延长”数据类型并对其进行求值。

ID

DTEData

DTData

1

1/1/2 1:01:03.1234567 AM

1/1/2001

表名:    DTETable
ID 数据类型:   Autonumber
DTEData 数据类型:   日期/时间已延长
DTData 数据类型:   日期/时间

示例:显示日期和时间

下面的示例显示日期和时间。 使用的格式为 24 小时制的 mm/dd/yyyy hh:mm:ss.nnnnnnn。 该格式不可自定义。

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

结果    Access 将显示:01/01/0002 01:01:03.1234567。

示例:输入日期和时间

下面的示例使用字符串格式输入日期和时间。 支持所有标准日期和时间格式。

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

结果    Access 将添加一个新行 (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

示例:查询表达式求值

下面的示例使用 Day 函数从日期和时间字段中提取日期。

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

结果    Access 将显示:

月份日期是:1
月份日期是:1

返回页首

另请参阅

数据类型和字段属性简介

设置日期和时间字段的格式

创建或删除日期和时间字段

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Office Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×