ฟังก์ชัน DateDiff

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

ไวยากรณ์

DateDiff ( ช่วง, วัน, วัน [, firstdayofweek] [, firstweekofyear] )

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

เคล็ดลับ: ใน Access ๒๐๑๐ตัวสร้างนิพจน์มี IntelliSense ดังนั้นคุณจึงสามารถดูอาร์กิวเมนต์ที่นิพจน์ของคุณจำเป็นต้องใช้ได้ 

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

คำอธิบาย

ช่วงเวลา

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

วัน,วัน

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

firstdayofweek

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

firstweekofyear

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

การตั้งค่า

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

การตั้งค่า

คำอธิบาย

yyyy

ปี

q

ไตรมาส

m

เดือน

y

วันของปี

d

วัน

w

วันทำงาน

ww

สัปดาห์

h

ชั่วโมง

n

นาที

s

วินาที

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

ค่าคงที่

ค่า

คำอธิบาย

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เพื่อคำนวณจำนวนวันระหว่างวันที่สองวันที่หรือจำนวนสัปดาห์ระหว่างวันนี้และสิ้นสุดของปี

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

ถ้าวันอ้างอิงไปยังจุดภายหลังจากวันฟังก์ชันDateDiffจะส่งกลับตัวเลขที่เป็นค่าลบ

อาร์กิวเมนต์firstdayofweekจะมีผลต่อการคำนวณที่ใช้สัญลักษณ์ "w" และ "ww"

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

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

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

ตัวอย่างแบบสอบถาม DateDiff

นิพจน์

ผลลัพธ์

เลือก DateDiff ("yyyy", #01/01/2010 #, [DateofSale]) เป็นนิพจน์จาก ProductSales

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

เลือก DateDiff ("q", [DateofSale], Date ()) เป็น DaysSinceSale จาก ProductSales

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

เลือก DateDiff ("y", [DateofSale], Date ()) เป็น DaysSinceSale จาก ProductSales

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

เลือก DateDiff ("d", [DateofSale], Date ()) เป็น DaysSinceSale จาก ProductSales

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

เลือก DateDiff ("w", [DateofSale], Date ()) เป็น DaysSinceSale จาก ProductSales

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

เลือก DateDiff ("ww", [DateofSale], Date ()) เป็น DaysSinceSale จาก ProductSales

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

เลือก DateDiff ("h", [DateTime], Date ()) เป็น DaysSinceSale จาก ProductSales

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

เลือก DateDiff ("n", [DateTime], Date ()) เป็น DaysSinceSale จาก ProductSales

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

เลือก DateDiff ("s", [DateTime], Date ()) เป็น DaysSinceSale จาก ProductSales

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

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

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

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

= DateDiff ("d", Now (), [สั่งซื้อ]. [ ReceiveBefore])-10

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

ตัวอย่าง VBA

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

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

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

หมายเหตุ:  หน้านี้ได้รับการแปลด้วยระบบอัตโนมัติ และอาจมีข้อผิดพลาดทางไวยากรณ์หรือความไม่ถูกต้อง จุดประสงค์ของเราคือเพื่อให้เนื้อหานี้มีประโยชน์กับคุณ คุณสามารถแจ้งให้เราทราบว่าข้อมูลมีประโยชน์หรือไม่ นี่คือบทความภาษาอังกฤษเพื่อให้คุณใช้อ้างอิง

ดูเพิ่มเติม

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

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

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×