ฟังก์ชัน DatePart

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

คำ เตือน มีปัญหากับการใช้ฟังก์ชันนี้ วันจันทร์สุดท้ายในบางปีปฏิทินสามารถถูกส่งกลับเป็นสัปดาห์ 53 เมื่อควรเป็นสัปดาห์ที่ 1 สําหรับข้อมูลเพิ่มเติมและวิธีแก้ไขปัญหาชั่วคราว ให้ดูที่ ฟังก์ชัน Format หรือ DatePart สามารถส่งกลับจํานวนสัปดาห์ที่ไม่ถูกต้องสําหรับวันจันทร์สุดท้ายในปี

ไวยากรณ์

DatePart(interval, date [, firstdayofweek] [, firstweekofyear] )

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

อาร์กิวเมนต์ คำอธิบาย
ช่วงเวลา จำเป็น นิพจน์สตริงที่เป็นช่วงของเวลาที่คุณต้องการส่งกลับ
วัน จำเป็น ค่าตัวแปร (วันที่) ที่คุณต้องการประเมิน
วันแรกของสัปดาห์ ไม่จำเป็น ค่าคงที่ที่ระบุวันแรกของสัปดาห์ ถ้าไม่ระบุ จะถือว่าเป็นวันอาทิตย์
สัปดาห์แรกของปี ไม่จำเป็น ค่าคงที่ที่ระบุสัปดาห์แรกของปี ถ้าไม่ได้ระบุไว้ จะถือว่าสัปดาห์แรกเป็นสัปดาห์ที่มีวันที่ 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 เริ่มต้นด้วยสัปดาห์เต็มสัปดาห์แรกของปี

ข้อสังเกต

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

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

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

หมายเหตุ

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

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

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

นิพจน์ ผลลัพธ์
SELECT DatePart("yyyy",[DateofSale]) AS NewDate FROM ProductSales; ส่งกลับ 'ปี' ของค่าวันที่ของเขตข้อมูล "DateofSale"
SELECT DatePart("q",[DateofSale]) AS NewDate FROM ProductSales; ส่งกลับ 'ไตรมาส' (ยึดตามปีปฏิทิน) ของค่าวันที่ของเขตข้อมูล "DateofSale"
SELECT DatePart("y",[DateofSale]) AS NewDate FROM ProductSales; ส่งกลับ 'วันของปี' (1 ถึง 365) ของค่าวันที่ของเขตข้อมูล "DateofSale"
SELECT DatePart("d",[DateofSale]) AS NewDate FROM ProductSales; ส่งกลับ 'วัน' ของค่าวันที่ของเขตข้อมูล "DateofSale"
SELECT DatePart("w",[DateofSale]) AS NewDate FROM ProductSales; ส่งกลับ 'วันทํางาน' (ตั้งแต่ 1 ถึง 7 ที่ 1 แสดงถึงวันอาทิตย์) ของค่าวันที่ของเขตข้อมูล "DateofSale"
SELECT DatePart("ww",[DateofSale]) AS NewDate FROM ProductSales; ส่งกลับ 'จํานวนสัปดาห์' (จาก 1 ถึง 52) ของค่าวันที่ของเขตข้อมูล "DateofSale"
SELECT DatePart("h",[DateTime]) AS NewDate FROM ProductSales; ส่งกลับ 'ชั่วโมง' ของค่าวันที่ของเขตข้อมูล "DateTime"
SELECT DatePart("n",[DateTime]) AS NewDate FROM ProductSales; ส่งกลับ 'นาที' ของค่าวันที่ของเขตข้อมูล "DateTime"
SELECT DatePart("s",[DateTime]) AS NewDate FROM ProductSales; ส่งกลับ 'วินาที' ของค่าวันที่ของเขตข้อมูล "DateTime"

ตัวอย่าง VBA

หมายเหตุ

ตัวอย่างต่อไปนี้จะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้เลือก การอ้างอิงสําหรับนักพัฒนา ในรายการดรอปดาวน์ที่อยู่ถัดจาก ค้นหา แล้วใส่คําอย่างน้อยหนึ่งคําในกล่องค้นหา

ตัวอย่างนี้จะใช้วันที่ และใช้ฟังก์ชัน DatePart แสดงไตรมาสของปีที่เกิดขึ้น

Dim TheDate As Date    ' Declare variables.
Dim Msg    
TheDate = InputBox("Enter a date:")
Msg = "Quarter: " & DatePart("q", TheDate)
MsgBox Msg

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