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

ส่งกลับ ตัวแปร (ยาว) ที่ระบุจำนวนของช่วงเวลาระหว่างวันที่สองวันที่ระบุ

ไวยากรณ์

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

ไวยากรณ์ของฟังก์ชัน DateDiff มีอาร์กิวเมนต์ดังนี้

อาร์กิวเมนต์

คำอธิบาย

ช่วงเวลา

จำเป็น นิพจน์สตริงที่เป็นช่วงของเวลาที่คุณใช้ในการคํานวณความแตกต่างระหว่างวันที่ 1 และวันที่ 2

วันที่ 1, วันที่ 2

จำเป็น ตัวแปร (วันที่) วันที่สองวันที่คุณต้องการใช้ในการคํานวณ

วันแรกของสัปดาห์

ไม่จำเป็น ค่าคงที่ ที่ระบุวันแรกของสัปดาห์ ถ้าไม่ระบุ จะถือว่าเป็นวันอาทิตย์

สัปดาห์แรกของปี

ไม่จำเป็น ค่าคงที่ที่ระบุสัปดาห์แรกของปี ถ้าไม่ได้ระบุไว้ จะถือว่าสัปดาห์แรกเป็นสัปดาห์ที่มีวันที่ 1 มกราคม

การตั้งค่า

ช่วงเวลา อาร์กิวเมนต์ มีการตั้งค่าเหล่านี้:

การตั้งค่า

คำอธิบาย

yyyy

ปี

q

ไตรมาส

m

เดือน

y

วันของปี

d

วัน

w

วันทำงาน

ww

สัปดาห์

h

ชั่วโมง

n

นาที

s

วินาที

อาร์กิวเมนต์ วันแรกของสัปดาห์ มีการตั้งค่าเหล่านี้:

ค่าคงที่

ค่า

คำอธิบาย

vbUseSystem

0

ใช้การตั้งค่า NLS API

vbSunday

1

วันอาทิตย์ (ค่าเริ่มต้น)

vbMonday

2

วันจันทร์

vbTuesday

3

วันอังคาร

vbWednesday

4

วันพุธ

vbThursday

5

วันพฤหัสบดี

vbFriday

6

วันศุกร์

vbSaturday

7

วันเสาร์

ค่าคงที่

ค่า

คำอธิบาย

vbUseSystem

0

ใช้การตั้งค่า NLS API

vbFirstJan1

1

เริ่มต้นด้วยสัปดาห์ที่มีวันที่ 1 มกราคม (ค่าเริ่มต้น)

vbFirstFourDays

2

เริ่มต้นด้วยสัปดาห์แรกที่มีอย่างน้อยสี่วันในปีใหม่

vbFirstFullWeek

3

เริ่มต้นด้วยสัปดาห์เต็มสัปดาห์แรกของปี

ข้อสังเกต

คุณสามารถใช้ฟังก์ชัน DateDiff เพื่อกําหนดจํานวนช่วงเวลาที่ระบุที่มีอยู่ระหว่างวันที่สองวัน ตัวอย่างเช่น คุณอาจใช้ DateDiff เพื่อคํานวณจํานวนวันระหว่างวันที่สองวัน หรือจํานวนสัปดาห์ระหว่างวันนี้และสิ้นปี

เมื่อต้องการคํานวณจํานวนวันระหว่าง วันที่ 1 และ วันที่ 2 คุณสามารถใช้ วันของปี ("y") หรือ วัน ("d") เมื่อ interval คือ Weekday ("w") DateDiff จะส่งกลับจํานวนสัปดาห์ระหว่างวันที่สองวัน ถ้า date1 ตรงกับวันจันทร์ DateDiff จะนับจํานวนวันจันทร์จนถึงวันที่ 2 นับวันที่ 2 แต่ไม่ใช่วันที่ 1 ถ้า interval เป็น Week ("ww") อย่างไรก็ตาม ฟังก์ชัน DateDiff จะส่งกลับจํานวนสัปดาห์ในปฏิทินระหว่างวันที่สองวัน โดยนับจํานวนวันอาทิตย์ระหว่างวันที่ 1 และวันที่ 2DateDiff จะนับ วันที่ 2 ถ้าอยู่ในวันอาทิตย์ แต่จะไม่นับ วันที่ 1 แม้ว่าจะเป็นวันอาทิตย์ก็ตาม

ถ้า date1 อ้างอิงไปยังจุดหลังจากเวลานอกเหนือจาก วันที่ 2 ฟังก์ชัน DateDiff จะส่งกลับค่าจํานวนลบ

อาร์กิวเมนต์ วันแรกของสัปดาห์ มีผลต่อการคํานวณที่ใช้สัญลักษณ์ช่วงเวลา "w" และ "ww"

ถ้า date1 หรือ date2 เป็น สัญพจน์วันที่ ปีที่ระบุจะกลายเป็นส่วนถาวรของวันที่นั้น อย่างไรก็ตาม ถ้า date1 หรือ date2 อยู่ในเครื่องหมายอัญประกาศคู่ (" ") และคุณละเว้นปี ปีปัจจุบันจะถูกแทรกลงในโค้ดของคุณทุกครั้งที่นิพจน์ date1 หรือ date2 ถูกประเมิน สิ่งนี้ทําให้สามารถเขียนรหัสที่สามารถใช้ในปีที่แตกต่างกันได้

เมื่อเปรียบเทียบวันที่ 31 ธันวาคมถึง 1 มกราคมของปีถัดไปทันที DateDiff for Year ("yyyy") จะส่งกลับค่า 1 แม้ว่าจะผ่านไปเพียงวันเดียว

หมายเหตุ:  สําหรับ วันที่ 1 และ วันที่ 2 ถ้าการตั้งค่าคุณสมบัติ ปฏิทิน เป็นคริสต์ศักดิก วันที่ที่ระบุต้องเป็นคริสต์ศักดิก ถ้าปฏิทินเป็นฮิจเราะห์ วันที่ที่ระบุต้องเป็นฮิจเราะห์

ตัวอย่างคิวรี DateDiff

Expression

ผลลัพธ์

SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales;

ส่งกลับผลต่างระหว่าง Date2 และ Date1 (พิจารณา Date1 เป็นเก่าที่สุด และ Date2 เป็นค่าใหม่ที่สุด) เป็นจํานวน 'ปี' ผลลัพธ์: ผลต่างระหว่างค่าในเขตข้อมูล "DateofSale" และวันที่ "01/01/2010" เป็นจํานวน 'ปี'

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

ส่งกลับผลต่างระหว่างวันที่ของระบบและ "DateofSale" เป็นจํานวน 'ไตรมาส' (ตามปีปฏิทิน) และแสดงในคอลัมน์ "DaysSinceSale" ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateofSale" เป็นจํานวน 'เดือน' และแสดงในคอลัมน์ "DaysSinceSale"

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

ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateofSale" เป็นจํานวน 'วัน' และแสดงในคอลัมน์ "DaysSinceSale"

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

ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateofSale" เป็นจํานวน 'วัน' และแสดงในคอลัมน์ "DaysSinceSale"

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

ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateofSale" เป็นจํานวน 'วันทํางาน' และแสดงในคอลัมน์ "DaysSinceSale" ถ้า "DateofSale" อยู่ในวันจันทร์ DateDiff จะนับจํานวนวันจันทร์จนถึงวันที่ของระบบ โดยนับวันที่ของระบบแต่ไม่นับค่าใน "DateofSale"

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

ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateofSale" เป็นจํานวน "สัปดาห์ปฏิทิน" และแสดงในคอลัมน์ "DaysSinceSale" โดยนับจํานวนวันอาทิตย์ระหว่าง "DateofSale" และ "system date" ซึ่งจะนับวันที่ของระบบถ้าตรงกับวันอาทิตย์ แต่จะไม่นับ "DateofSale" แม้ว่ามันจะตกอยู่ในวันอาทิตย์ก็ตาม

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

ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateTime" เป็นจํานวน 'ชั่วโมง' และแสดงในคอลัมน์ "DaysSinceSale"

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

ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateTime" เป็นจํานวน 'นาที' และแสดงในคอลัมน์ "DaysSinceSale"

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

ส่งกลับค่าความแตกต่างระหว่างวันที่ของระบบและ "DateTime" เป็นจํานวน 'วินาที' และแสดงในคอลัมน์ "DaysSinceSale"

ตัวอย่างของนิพจน์

ใช้ฟังก์ชัน DateDiff ในนิพจน์     คุณสามารถใช้ฟังก์ชัน DateDiff ได้ทุกที่ที่คุณสามารถใช้นิพจน์ได้ ตัวอย่างเช่น สมมติว่าคุณมีแบบฟอร์มที่คุณใช้ในการตอบสนองใบสั่งซื้อของลูกค้า ในตารางใบสั่งซื้อ คุณมีเขตข้อมูลที่ชื่อ ReceiveBefore ซึ่งมีวันที่ที่ลูกค้าต้องได้รับใบสั่งซื้อ คุณสามารถใช้ฟังก์ชัน DateDiff กับกล่องข้อความบนฟอร์มเพื่อแสดงจํานวนวันที่เหลือก่อนที่คําสั่งซื้อต้องจัดส่ง

ถ้าจะใช้เวลาสิบวันในการจัดส่งคําสั่งซื้อใดๆ ให้คุณตั้งค่าคุณสมบัติ แหล่งตัวควบคุม ของกล่องข้อความดังนี้:

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

เมื่อคุณเปิดฟอร์มในมุมมองฟอร์ม กล่องข้อความจะแสดงจํานวนวันที่เหลือก่อนที่คําสั่งซื้อต้องจัดส่ง หากเหลือเวลาน้อยกว่า 10 วันก่อนที่ลูกค้าจะต้องได้รับคําสั่งซื้อ หมายเลขในกล่องข้อความจะเป็นค่าลบและระบุจํานวนวันที่ล่าช้าที่คําสั่งซื้อจะได้รับหากมีการจัดส่งในทันที

ตัวอย่าง VBA

ใช้ฟังก์ชัน DateDiff ในโค้ด VBA    

ตัวอย่างนี้ใช้ฟังก์ชัน DateDiff เพื่อแสดงจํานวนวันระหว่างวันที่ที่ระบุและวันนี้

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

ดูเพิ่มเติม

การเลือกฟังก์ชันวันที่ที่ถูกต้อง

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย