Hàm DateDiff

Áp dụng cho
Access cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Trả về một Biến _thể (Dài) chỉ rõ số khoảng thời gian giữa hai ngày.

Cú pháp

DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])

Hàm DateDiff có các đối số sau đây:

Đối số Mô tả
interval Bắt buộc. Biểu thức chuỗi là khoảng thời gian mà bạn sử dụng để tính toán sự khác biệt giữa và date1date2.
date1, date2 Bắt buộc. Biến _thể (Ngày). Hai ngày mà bạn muốn sử dụng trong tính toán.
firstdayofweek Không bắt buộc. Hằng số xác định ngày đầu tiên của tuần. Nếu bạn không chỉ định đối tượng đó, sẽ giả định là Chủ Nhật.
firstweekofyear Không bắt buộc. Hằng số xác định tuần đầu tiên của năm. Nếu bạn không chỉ định điều này, tuần đầu tiên là tuần có ngày 01 Tháng Một.

Thiết đặt

Tham đối interval có các thiết đặt này:

Thiết đặt Mô tả
yyyy Năm
q Quý
m Tháng
y Ngày trong năm
d Ngày
w Weekday
ww Tuần
h Giờ
n Phút
s Giây

Tham đối firstdayofweek có các thiết đặt này:

Hằng số Giá trị Mô tả
vbUseSystem 0 Sử dụng cài đặt API NLS.
vbSunday 1 Chủ nhật (mặc định)
vbMonday 2 Thứ Hai
vbTuesday 3 Thứ ba
vbWednesday 4 Thứ Tư
vbThursday 5 Thứ Năm
vbFriday 6 Thứ Sáu
vbSaturday 7 Thứ Bảy
Hằng số Giá trị Mô tả
vbUseSystem 0 Sử dụng cài đặt API NLS.
vbFirstJan1 1 Bắt đầu với tuần diễn ra ngày 1 tháng 1 (mặc định).
vbFirstFourDays 2 Bắt đầu với tuần đầu tiên có ít nhất bốn ngày trong năm mới.
vbFirstFullWeek 3 Bắt đầu với tuần đầy đủ đầu tiên trong năm.

Chú thích

Bạn có thể dùng hàm DateDiff này để xác định có bao nhiêu khoảng thời gian xác định tồn tại giữa hai ngày. Ví dụ, bạn có DateDiff thể dùng để tính toán số ngày giữa hai ngày hoặc số tuần từ hôm nay đến cuối năm.

Để tính toán số ngày giữa và date1date2, bạn có thể dùng Ngày trong năm ("y") hoặc Ngày ("d"). Khi interval là Weekday ("w"), DateDiff trả về số tuần giữa hai ngày. Nếu rơi date1 vào ngày Thứ Hai, hãy DateDiff đếm số ngày Thứ Hai cho đến date2. Nó được tính nhưng date2 không .date1 Tuy interval nhiên, nếu là Tuần ("ww"), hàm DateDiff trả về số tuần trong lịch giữa hai ngày. Nó đếm số Ngày Chủ Nhật tính từ đến date1date2. DateDiff đếm nếu date2 nó rơi vào ngày Chủ Nhật, nhưng nó không được date1đếm, ngay cả khi nó rơi vào ngày Chủ Nhật.

Nếu date1 tham chiếu đến một thời điểm sau đó hơn date2, hàm sẽ DateDiff trả về một số âm.

Đối firstdayofweek số này ảnh hưởng đến các phép tính sử dụng ký "w" hiệu "ww" khoảng thời gian và.

Nếu date1 hoặc là date2 một chữ ngày, năm được chỉ định sẽ trở thành một phần vĩnh viễn của ngày đó. Tuy nhiên, date1date2 nếu hoặc được đặt trong dấu ngoặc kép (" "), và bạn bỏ qua năm, date1date2 năm hiện tại được chèn vào mã của bạn mỗi khi biểu thức hoặc được đánh giá. Điều này giúp bạn có thể viết mã mà bạn có thể sử dụng trong các năm khác nhau.

Khi bạn so sánh ngày 31 tháng 12 với ngày 1 tháng 1 của năm tiếp theo, DateDiff đối với Year ("yyyy") trả về 1 mặc dù chỉ có một ngày đã trôi qua.

Lưu ý

Đối date1 với và date2, nếu cài đặt Calendar thuộc tính là lịch Gregory, ngày được cung cấp phải là lịch Gregory. Nếu lịch là Hijri, ngày tháng được cung cấp phải là Hijri.

Ví dụ về Truy vấn DateDiff

Biểu thức Kết quả
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Trả về chênh lệch, tính bằng năm, giữa ngày 01/01/2010 và các giá trị trong trường DateofSale .
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch, theo quý dựa trên năm dương lịch, DateofSalegiữa ngày hệ thống và , và hiển thị nó trong DaysSinceSale cột.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch, tính bằng ngày, giữa ngày hệ thống và DateofSale, và hiển thị nó trong DaysSinceSale cột.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch, tính bằng ngày, giữa ngày hệ thống và DateofSale, và hiển thị nó trong DaysSinceSale cột.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch, trong các ngày trong tuần, giữa ngày hệ thống và DateofSale, và hiển thị nó trong DaysSinceSale cột. Nếu DateofSale rơi vào ngày Thứ Hai, DateDiff hãy đếm số thứ Hai cho đến ngày hệ thống. Nó đếm ngày hệ thống nhưng không tính giá DateofSale trị.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch, trong các tuần trong lịch, giữa ngày hệ thống DateofSalevà , và hiển thị nó trong DaysSinceSale cột. Nó đếm số Ngày Chủ Nhật tính từ đó DateofSale đến ngày hệ thống. Nó đếm ngày hệ thống nếu nó rơi vào ngày Chủ Nhật, DateofSalenhưng nó không được tính , ngay cả khi nó rơi vào ngày Chủ nhật.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch, tính theo giờ, giữa ngày hệ thống và DateTime, và hiển thị nó trong DaysSinceSale cột.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch, tính bằng phút, giữa ngày hệ thống DateTimevà , và hiển thị nó trong DaysSinceSale cột.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Trả về chênh lệch tính bằng giây, giữa ngày hệ thống và DateTime, và hiển thị nó trong DaysSinceSale cột.

Sử dụng hàm DateDiff trong một biểu thức

Bạn có thể sử dụng hàm ở DateDiff bất cứ đâu bạn có thể sử dụng biểu thức. Ví dụ: giả sử bạn có một biểu mẫu mà bạn sử dụng để thực hiện đơn đặt hàng của khách hàng. Trong bảng Đơn hàng, bạn có một trường được đặt ReceiveBefore tên chứa ngày mà khách hàng cần nhận đơn hàng. Bạn có thể sử dụng DateDiff hàm với một hộp văn bản trên biểu mẫu để hiển thị số ngày còn lại trước khi đơn hàng phải giao hàng.

Giả sử mất mười ngày để giao bất kỳ đơn hàng nào, hãy đặt thuộc tính Nguồn Điều khiển của hộp văn bản như sau:

=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10

Khi bạn mở biểu mẫu trong Dạng xem Biểu mẫu, hộp văn bản sẽ hiển thị số ngày còn lại trước khi đơn hàng phải được giao. Nếu còn ít hơn 10 ngày trước khi khách hàng cần nhận đơn hàng, số trong hộp văn bản sẽ âm. Thông tin này cho biết đơn hàng sẽ trễ bao nhiêu ngày nếu bạn giao ngay đơn hàng đó.

Sử dụng hàm DateDiff trong mã VBA

Ví dụ này sử dụng DateDiff hàm để hiển thị số ngày tính từ ngày đã cho đến ngày hôm nay.

Dim TheDate As Date  ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

Xem Thêm

Chọn hàm ngày đúng