Applies ToAccess cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Trả về một Biến_thể (Dài) xác định số khoảng thời gian giữa hai ngày cụ thể.

Cú pháp

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

pháp 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 bạn sử dụng để tính toán chênh lệch giữa ngày_1và ngày_2.

ngày_1, ngày_2

Bắt buộc. Biến _thể (Ngày). Hai ngày bạn muốn sử dụng để tính toán.

ngày_đầu_tiên_của_tuần

Không bắt buộc. Một hằng xác định ngày đầu tiên của tuần. Nếu không được xác định, sẽ giả định là Chủ Nhật.

tuần_đầu_tiên_của_năm

Không bắt buộc. Hằng số xác định tuần đầu tiên của năm. Nếu không được xác định, giả định tuần đầu tiên của năm là tuần có ngày 01 Tháng Một.

Cài đặt

Khoảng thời giantham đối có các thiết đặt sau:

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

.

Giây

Tham đối ngày_đầu_tiên_của_tuần có các thiết đặt sau:

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 có 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 để 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ó thể dùng Hàm DateDiff để 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 ngày_1 và ngày _2, 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 date1 rơi vào thứ hai, DateDiff sẽ đếm số thứ hai cho đến ngày 2. Nó được tính ngày_2 nhưng không phải là ngày_1. Nếu khoảng thời gian là Week ("ww"), thì hàm DateDiff trả về số tuần lịch giữa hai ngày. Số ngày Chủ Nhật tính từ ngày 1 đến ngày 2. DateDiff đếmngày 2 nếu nó rơi vào một chủ nhật; nhưng nó không đếm date1, ngay cả khi nó rơi vào một ngày chủ nhật.

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

Tham đối ngày_đầu_tiên_ của_tuần ảnh hưởng đến các phép tính sử dụng ký hiệu khoảng "w" và "ww".

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

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

Lưu ý:  Đối với ngày_1và ngày_2, nếu cài đặt thuộc tính Lịch 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 giữa Date2 và Date1 (xem Date1 là cũ nhất và Date2 là mới nhất) là số 'Năm'. Kết quả: Chênh lệch giữa các giá trị trong trường "DateofSale" và ngày "01/01/2010" là số 'Năm'.

SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Trả về chênh lệch giữa ngày hệ thống và "DateofSale" dưới dạng số 'Quý' (dựa trên năm tính toán) và hiển thị trong cột "DaysSinceSale". trả về chênh lệch giữa ngày hệ thống và "DateofSale" dưới dạng số 'Tháng' và hiển thị trong cột "DaysSinceSale".

SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Trả về chênh lệch giữa ngày hệ thống và "DateofSale" dưới dạng số 'Ngày' và hiển thị trong cột "DaysSinceSale".

SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Trả về chênh lệch giữa ngày hệ thống và "DateofSale" dưới dạng số 'Ngày' và hiển thị trong cột "DaysSinceSale".

SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Trả về chênh lệch giữa ngày hệ thống và "DateofSale" dưới dạng số 'Các ngày trong tuần' và hiển thị trong cột "DaysSinceSale". Nếu "DateofSale" rơi vào thứ Hai, DateDiff sẽ đếm số Thứ Hai cho đến ngày hệ thống. Hàm này đếm ngày hệ thống nhưng không tính giá trị trong "DateofSale".

SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Trả về chênh lệch giữa ngày hệ thống và "DateofSale" dưới dạng số "Calender Weeks" và hiển thị trong cột "DaysSinceSale". Hàm đếm số chủ nhật tính từ "DateofSale" đến "ngày hệ thống". Nó sẽ đếm ngày hệ thống nếu nó rơi vào một chủ nhật; nhưng nó không được tính là "DateofSale", 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 giữa ngày hệ thống và "DateTime" dưới dạng số 'Giờ' và hiển thị trong cột "DaysSinceSale".

SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Trả về chênh lệch giữa ngày hệ thống và "DateTime" dưới dạng số 'Phút' và hiển thị trong cột "DaysSinceSale".

SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Trả về chênh lệch giữa ngày hệ thống và "DateTime" dưới dạng số 'giây' và hiển thị trong cột "DaysSinceSale".

Biểu thức ví dụ

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ứ nơi nào 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ên là ReceiveBefore chứa ngày mà khách hàng cần nhận đơn hàng. Bạn có thể sử dụng hàm DateDiff 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, bạn đặt thuộc tính Nguồn Điều khiển của hộp văn bản như sau:

=DateDiff("d", Now(), [Đơn_hàng].[ ReceiveBefore])-10

Khi bạn mở biểu mẫu ở 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 là số âm và cho biết đơn hàng trễ bao nhiêu ngày nếu đơn hàng được giao ngay.

Ví dụ về VBA

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

Ví dụ này sử dụng hàm DateDiff để 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 MsgTheDate = InputBox("Enter a date")Msg = "Days from today: " & DateDiff("d", Now, TheDate)MsgBox Msg

Xem thêm

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

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ú.