Applies ToAccess cho Microsoft 365 Access 2024 Access 2021

Kiểu dữ liệu Mở rộng Ngày/Giờ lưu trữ thông tin ngày và giờ cũng tương tự như kiểu dữ liệu Ngày/Giờ nhưng cung cấp phạm vi ngày lớn hơn, độ chính xác phân số cao hơn và tính tương thích với kiểu ngày SQL Server datetime2. Khi nhập hoặc liên kết dữ liệu Access với SQL Server, bạn có thể ánh xạ một trường Mở rộng Ngày/Giờ Access một cách nhất quán đến SQL Server cột datetime2. Để biết thêm thông tin, hãy xem datetime2 (Transact-SQL).

Phạm vi Mở rộng Ngày/Giờ

Cảnh báo    Khi bạn tạo biểu thức và sử dụng các hàm ngày/giờ dựa trên kiểu dữ liệu Mở rộng Ngày/Giờ trong Access, bạn có thể mất độ chính xác trong các phép tính hoặc gặp phải các sự cố khác với kết quả. Chúng tôi đã biết về sự cố này và lên kế hoạch hỗ trợ biểu thức cũng như chức năng tốt hơn trong một bản phát hành sắp tới. Giải pháp thay thế là bạn có Create truy vấn chuyển qua để sử dụng các hàm tương đương SQL Server thức và ngày/giờ. Để biết thêm thông tin, hãy xem So sánh Access SQL với SQL Server TSQL.

Trong bài viết này

So sánh kiểu dữ liệu Mở rộng Ngày/Giờ và Ngày/Giờ

Sử dụng kiểu dữ liệu Mở rộng Ngày/Giờ

Những điều cần cân nhắc về tính tương thích ngược

Sử dụng kiểu dữ liệu Mở rộng Ngày/Giờ làm chuỗi trong VBA

So sánh kiểu dữ liệu Mở rộng Ngày/Giờ và Ngày/Giờ

Bảng sau đây tóm tắt những điểm khác biệt quan trọng giữa hai kiểu dữ liệu.

Thuộc tính

Ngày/Giờ

Ngày/Giờ Mở rộng

Giá trị Tối thiểu

100-01-01 00:00:00

0001-01-01 00:00:00

Giá trị Tối đa

9999-12-31 23:59:59.999

9999-12-31 23:59:59.9999999

Chính xác

0,001 giây

1 nanosecond

Size

Điểm trôi nổi có độ chính xác kép

Chuỗi mã hóa 42 byte

Đầu Trang

Sử dụng kiểu dữ liệu Mở rộng Ngày/Giờ

Thông tin sau đây mô tả những điều cần cân nhắc về việc sử dụng quan trọng.

Dạng xem Thiết kế Bảng    Để tận dụng dải dữ liệu lớn hơn và độ chính xác cao hơn, bạn có thể thêm trường vào bảng Access. Bạn cũng có thể chuyển đổi kiểu dữ liệu Ngày/Giờ thành Kiểu dữ liệu Mở rộng Ngày/Giờ trong dạng xem Thiết kế Bảng. Việc sử dụng kiểu dữ liệu này làm trường khóa chính cũng được hỗ trợ. Để biết thêm thông tin, hãy Create bảng và thêm trường.

Nhập ngày và giờ   Nhập giá trị ngày và giờ tương tự như kiểu dữ liệu Ngày/Giờ, ngoại trừ việc bạn cũng có thể nhập một hạt nano phân số. Ví dụ:

  • Định dạng mục nhập: mm/dd/yyyy hh:mm:ss.nnnnnnn

  • Ví dụ: 15/06/1215 09:25:3.234

Nếu có nhiều hơn 7 phần nano phân số, chúng được làm tròn đến 7 chữ số. Để kiểm soát hiển thị của các giây nano phân số, hãy mở Bảng, trên dải băng, chọn Trường, rồi trong nhóm Định dạng, chọn Tăng Số thập phân Ảnh nút hoặc Giảm số thập phân Ảnh nút.

Định dạng    Cả kiểu dữ liệu Ngày/Giờ và Ngày/Giờ Mở rộng đều sử dụng các chuỗi định dạng chuẩn tương tự như Ngày chung, Ngàydài, Ngày trung bình, Ngàyngắn, Thời gian dài, Thời gian trung bình và Thời gian ngắn cũng như cả hai đều hỗ trợ định dạng tùy chỉnh. Đối với kiểu dữ liệu Mở rộng Ngày/Giờ, các định dạng tiêu chuẩn dựa trên thời gian cũng hỗ trợ độ chính xác phân số cho nano giây. Định dạng của kiểu dữ liệu Mở rộng Ngày/Giờ mặc định là định dạng Ngày và Thời gian Dạng Dài Chung và tuân theo các tùy chọn được chỉ định trong cài đặt vùng Windows. Bạn cũng có thể điều khiển định dạng độ chính xác của phân số bằng cách sử dụng thuộc tính Places Thập phân để chỉ định số chữ số ở bên phải dấu thập phân (1-7).

Liên kết và nhập     Bạn cũng có thể liên kết đến hoặc nhập từ cơ sở dữ liệu có kiểu dữ liệu tương ứng, chẳng hạn SQL Server kiểu dữ liệu datetime2. SQL Server cơ sở dữ liệu mới hơn từ phiên bản 2014 trở lên đều được hỗ trợ. Kiểu dữ liệu Mở rộng Ngày/Giờ yêu cầu sử dụng Trình điều khiển ODBC của Microsoft SQL Server 11 trở lên. Chúng tôi khuyên bạn nên sử dụng Microsoft ODBC Driver 13.1 để cài SQL Server. Việc sử dụng OLE DB cũng được hỗ trợ. Để biết thêm thông tin, hãy xem Hỗ trợ Kiểu Dữ liệu cho Các cải tiến Ngày và Giờ của ODBC và Dùng Các tính năng Ngày và Giờ Nâng cao (OLE DB).

Forms báo cáo    Bạn có thể thêm kiểu dữ liệu Mở rộng Ngày/Giờ vào biểu mẫu hoặc báo cáo. Trong biểu mẫu, bạn có thể sử dụng bộ chọn ngày và dấu hiệu nhập để nhập ngày có dải ô lớn hơn nhưng không phải độ chính xác phân số cho phần nano.

Hỗ trợ Biểu thức   Kiểu dữ liệu Mở rộng Ngày/Giờ hỗ trợ các Hàm Tổng hợp SQL và đánh giá biểu thức. Ví dụ: sử dụng LoggedDateTime làm trường với kiểu dữ liệu Mở rộng Ngày/Giờ:

Tác vụ

Ví dụ

Kết quả

Tìm giá trị tối thiểu

Min(LoggedDateTime)

Ngày và giờ sớm nhất trong phạm vi

Trích xuất tháng

Month(LoggedDateTime)

Tên tháng, chẳng hạn như Tháng Một

Thêm một ngày

[Ngày_Đăng_nhập]+1

Thứ Ba sẽ trở thành Thứ Tư

Đầu Trang

Những điều cần cân nhắc về Tính tương thích Ngược

Kiểu dữ liệu Mở rộng Ngày/Giờ không tương thích với các phiên bản trước của Microsoft Access. Nếu loại được sử dụng trong bảng Access cục bộ thì các phiên bản Access không bao gồm tính năng này sẽ không thể mở cơ sở dữ liệu.

Bạn có thể bật hoặc tắt kiểu dữ liệu Mở rộng Ngày/Giờ để liên kết và nhập với tùy chọn Hỗ trợ Kiểu Dữ liệu Mở rộng Ngày/Giờ của Cơ sở dữ liệu Hiện tại cho Bảng được Liên kết/lmported. Để biết thêm thông tin, hãy xem mục Đặt tùy chọn người dùng cho cơ sở dữ liệu hiện tại.

Đầu Trang

Sử dụng kiểu dữ liệu Mở rộng Ngày/Giờ làm chuỗi trong VBA

Các ví dụ về VBA sau đây sử dụng các phương pháp DAO để hiển thị, nhập và đánh giá kiểu dữ liệu Mở rộng Ngày/Giờ dựa trên bảng bên dưới.

ID

Dữ liệu DTEData

DTData

1

01/01/2 1:01:03.1234567 SA

01/01/2001

Tên bảng:    Kiểu dữ liệu ID DTETable:    Kiểu dữ liệuDTEData    Số tự động: Kiểu dữ liệuDTData    Mở rộng Ngày/Giờ: Ngày/Giờ

Ví dụ: Hiển thị ngày và giờ

Ví dụ sau đây hiển thị ngày và giờ. Định dạng được sử dụng là mm/dd/yyyy hh:mm:ss.nnnnnnnn trong đồng hồ 24 giờ. Định dạng không thể tùy chỉnh.

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

Kết quả    Access hiển thị: 01/01/0002 01:01:03.1234567.

Ví dụ: Nhập ngày và giờ

Ví dụ sau đây nhập ngày và giờ bằng định dạng chuỗi. Tất cả các định dạng ngày và giờ tiêu chuẩn đều được hỗ trợ.

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

Kết quả    Access thêm một hàng mới (ID = 2):

ID

Dữ liệu DTEData

DTData

1

01/01/2 1:01:03.1234567 SA

01/01/2001

2

01/01/9999 1:01:01.0123000 SA

01/01/2001

Ví dụ: Đánh giá biểu thức truy vấn

Ví dụ sau đây sử dụng Hàm Day để trích xuất số ngày từ các trường ngày và thời gian.

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

Kết quả    Access hiển thị:

Ngày trong tháng là: 1 Ngày trong tháng là: 1

Đầu Trang

Xem thêm

Giới thiệu các kiểu dữ liệu và thuộc tính trường

Định dạng trường ngày và giờ

Create hoặc xóa trường ngày và giờ

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.