Kiểu dữ liệu Ngày/Giờ Mở rộng lưu trữ thông tin ngày và giờ 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 bạn nhập hoặc liên kết dữ liệu Access với SQL Server, bạn có thể ánh xạ trường Ngày/Giờ Mở rộng Access một cách nhất quán đến cột SQL Server ngày/giờ2. Để 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 hàm ngày/giờ dựa trên kiểu dữ liệu Ngày/Giờ Mở rộng 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à dự định hỗ trợ biểu thức và chức năng tốt hơn trong bản phát hành sắp tới. Bạn có thể Tạo truy vấn chuyển qua để sử dụng các hàm SQL Server biểu thức và ngày/giờ tương đương như một giải pháp thay thế. Để biết thêm thông tin, hãy xem so sánh các SQL Access 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ờ

Các bảng sau đây tóm tắt những 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ờ Đã gia hạn

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 phạm vi 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 Ngày/Giờ Mở rộng 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, xem mục Tạo bảng và thêm trường.

Nhập ngày và giờ   Nhập giá trị ngày và thời gian 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 nanocond phân số. Ví dụ:

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

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

Nếu có nhiều hơn 7 fractional nanoseconds, chúng được làm tròn thành 7 chữ số. Để điều khiển hiển thị của nanoseconds phân số, 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úthoặ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 tháng Chung ,Ngày Dạng Dài ,Ngày Trung bình ,Ngày Ngắn ,Thời gian dạng Dài ,Thời gian Trung bình Thời gian ngắn và cả hai hỗ trợ định dạng tùy chỉnh. Đối với kiểu dữ liệu Ngày/Giờ Mở rộng, các định dạng chuẩn dựa trên thời gian cũng hỗ trợ độ chính xác phân số cho nano. Định dạng của kiểu dữ liệu Ngày/Giờ Mở rộng mặc định theo định dạng Ngày và Thời gian Dài Chung và tuân theo các tùy chọn được chỉ định Windows thiết đặt khu vực. Bạn cũng có thể điều khiển định dạng độ chính xác phân số bằng cách dùng thuộc tính Vị trí Thập phân để chỉ rõ 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 liệu phiên bản 2014 trở lên được hỗ trợ. Kiểu dữ liệu Mở rộng Ngày/Giờ yêu cầu sử dụng Microsoft ODBC Driver để SQL Server 11 trở lên. Chúng tôi khuyên bạn nên sử dụng Microsoft ODBC Driver 13.1 cho SQL Server. Việc 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 đối với Cải tiến Ngày và Giờ ODBC và Sử dụng các Tính năng Ngày và Giờ Nâng cao (OLE DB).

Biểu mẫu và báo cáo     Bạn có thể thêm kiểu dữ liệu Ngày/Giờ Mở rộng vào một biểu mẫu hoặc báo cáo. Trong một 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 với phạm vi lớn hơn nhưng không dùng độ chính xác phân số cho nanoconds.

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

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 Đã ghi nhật ký]+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 Microsoft Access trước đây. 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 Ngày/Giờ Mở rộng cho các thao tác liên kết và nhập với tùy chọn Truy nhập Cơ sở dữ liệu Hiện tại Hỗ trợ Kiểu Dữ liệu Mở rộng Ngày/Giờ 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 sử dụng các phương pháp DAO để hiển thị, nhập và đánh giá kiểu dữ liệu Ngày/Giờ Mở rộng dựa trên bảng dưới đây.

ID

DTEData

DTData

1

01/01/2 1:01:03.1234567 AM

01/01/2001

Tên bảng:    Kiểu dữ liệu ID DTETable: Kiểu dữ liệu DTEData Số tự động: Kiểu dữ liệu


DTData Ngày/Giờ Mở rộng:    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.nnnnnnn trong 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 sẽ 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ờ 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

DTEData

DTData

1

01/01/2 1:01:03.1234567 AM

01/01/2001

2

01/01/9999 1:01:01.0123000 AM

01/01/2001

Ví dụ: Đánh giá một 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 sẽ 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 tháng và thời gian

Tạo hoặc xóa trường ngày tháng và thời gian

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

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft Office nội bộ

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?

Cảm ơn phản hồi của bạn!

×