Applies ToAccess for Microsoft 365 Access 2024 Access 2021

ชนิดข้อมูลวันที่/เวลาที่ขยายจะจัดเก็บข้อมูลของวันที่และเวลา และคล้ายกับชนิดข้อมูลวันที่/เวลา แต่จะระบุช่วงวันที่ที่กว้างกว่า ความแม่นยำของเศษส่วนที่สูงขึ้น และความเข้ากันได้กับชนิดข้อมูล เวลาวันที่2 ของ SQL Server เมื่อคุณนำเข้าหรือลิงก์ข้อมูล Access ไปยัง SQL Server คุณสามารถแมปเขตข้อมูลของวันที่/เวลาที่ขยายของ Access ไปยังคอลัมน์ เวลาวันที่2 ของ SQL Server ได้อย่างต่อเนื่อง สำหรับข้อมูลเพิ่มเติม ให้ดู เวลาวันที่2 (Transact-SQL)

ช่วงวันที่/เวลาที่ขยาย

คำเตือน    เมื่อคุณสร้างนิพจน์และใช้ฟังก์ชันวันที่/เวลาตามชนิดข้อมูลวันที่/เวลาที่ขยายใน Access คุณอาจสูญเสียความแม่นยำในการคำนวณหรือพบปัญหาอื่นๆ เกี่ยวกับผลลัพธ์ เราทราบถึงปัญหานี้และวางแผนที่จะรองรับนิพจน์และฟังก์ชันให้ดียิ่งขึ้นในรุ่นที่กำลังมาถึง ในฐานะวิธีแก้ปัญหาชั่วคราว คุณสามารถสร้างแบบสอบถามแบบพาส-ทรูเพื่อใช้นิพจน์ SQL Server ที่เทียบเท่าและฟังก์ชันวันที่/เวลา สำหรับข้อมูลเพิ่มเติม ให้ดู การเปรียบเทียบ Access SQL กับ SQL Server TSQL

ในบทความนี้

การเปรียบเทียบชนิดข้อมูลวันที่/เวลาและวันที่/เวลาที่ขยาย

ใช้ชนิดข้อมูลวันที่/เวลาที่ขยาย

ข้อควรพิจารณาเกี่ยวกับความเข้ากันได้กับแบบย้อนหลัง

ใช้ชนิดข้อมูลวันที่/เวลาที่ขยายเป็นสตริงใน VBA

การเปรียบเทียบชนิดข้อมูลวันที่/เวลาและวันที่/เวลาที่ขยาย

ตารางต่อไปนี้จะสรุปความแตกต่างที่สำคัญระหว่างสองชนิดข้อมูล

แอตทริบิวต์

วันที่/เวลา

วันที่และเวลาที่ขยาย

ค่าน้อยที่สุด

100-01-01 00:00:00

0001-01-01 00:00:00

ค่ามากที่สุด

9999-12-31 23:59:59.999

9999-12-31 23:59:59.9999999

ความเที่ยงตรง

0.001 วินาที

1 นาโนวินาที

ขนาด

จุดลอยตัวความแม่นยำสองเท่า

สตริงที่เข้ารหัสของ 42 ไบต์

ด้านบนของหน้า

ใช้ชนิดข้อมูลวันที่/เวลาที่ขยาย

ข้อมูลต่อไปนี้จะอธิบายถึงข้อควรพิจารณาในการใช้งานที่สำคัญ

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

การใส่วันที่และเวลา   การใส่ค่าวันที่และเวลาจะคล้ายกับชนิดข้อมูลวันที่/เวลา ยกเว้นว่าคุณสามารถใส่เศษส่วนนาโนวินาทีได้ด้วย ตัวอย่างเช่น:

  • รูปแบบรายการ: mm/dd/yyyy hh:mm:ss.nnnnnnn

  • ตัวอย่าง: 06/15/1215 09:25:3.234

หากมีเศษส่วนนาโนวินาทีมากกว่า 7 หลัก ตัวเลขจะถูกปัดเป็น 7 หลัก เมื่อต้องการควบคุมการแสดงเศษส่วนนาโนวินาที ให้เปิดตาราง ใน Ribbon ให้เลือก เขตข้อมูล และในกลุ่ม การจัดรูปแบบ ให้เลือก เพิ่มทศนิยม รูปปุ่ม หรือ ลดทศนิยม รูปปุ่ม

การจัดรูปแบบ    ทั้งชนิดข้อมูลวันที่/เวลาและวันที่/เวลาที่ขยายจะใช้สตริงการจัดรูปแบบมาตรฐานที่คล้ายกันของ วันที่ทั่วไปวันที่แบบยาววันที่แบบปานกลางวันที่แบบสั้นเวลาแบบยาวเวลาแบบปานกลาง และ เวลาแบบสั้น และรองรับการจัดรูปแบบที่กำหนดเอง สำหรับชนิดข้อมูลวันที่/เวลาที่ขยาย รูปแบบมาตรฐานที่ยึดตามเวลายังรองรับความแม่นยำของเศษส่วนสำหรับนาโนวินาทีด้วย การจัดรูปแบบค่าเริ่มต้นของชนิดข้อมูลวันที่/เวลาเป็นรูปแบบ วันที่ทั่วไป และ เวลาแบบยาว และทำตามตัวเลือกที่ระบุใน การตั้งค่าภูมิภาคของ Windows นอกจากนี้ คุณยังสามารถควบคุมการจัดรูปแบบของความแม่นยำของเศษส่วนโดยใช้คุณสมบัติ ตำแหน่งทศนิยม เพื่อระบุจำนวนหลักทางด้านขวาของจุดทศนิยม (1-7) ได้

ลิงก์และนำเข้า     นอกจากนี้ คุณยังสามารถลิงก์หรือนำเข้าจากฐานข้อมูลด้วยชนิดข้อมูลที่สอดคล้องกัน เช่น ชนิดข้อมูล วันที่เวลา2 ของ SQL Server รองรับ SQL Server เวอร์ชัน 2014 หรือเวอร์ชันที่ใหม่กว่า ชนิดข้อมูลวันที่/เวลาที่ขยายจำเป็นต้องใช้โปรแกรมควบคุม ODBC ของ Microsoft สำหรับ SQL Server 11 หรือเวอร์ชันที่ใหม่กว่า เราขอแนะนำให้ใช้ โปรแกรมควบคุม ODBC ของ Microsoft 13.1 สำหรับ SQL Server ยังรองรับการใช้งาน OLE DB อีกด้วย สำหรับข้อมูลเพิ่มเติม ให้ดู การสนับสนุนชนิดข้อมูลสำหรับการปรับปรุงวันที่และเวลาของ ODBC และ ใช้ฟีเจอร์วันที่และเวลาที่ปรับปรุง (OLE DB)

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

การสนับสนุนนิพจน์   ชนิดข้อมูลวันที่/เวลาที่ขยายสนับสนุน ฟังก์ชันการรวมของ SQL และการประเมินนิพจน์ ตัวอย่างเช่น การใช้ LoggedDateTime เป็นเขตข้อมูลที่มีชนิดข้อมูลวันที่/เวลาที่ขยาย:

งาน

ตัวอย่าง

ผลลัพธ์

ค้นหาค่าน้อยที่สุด

Min(LoggedDateTime)

วันที่และเวลาที่เร็วที่สุดในช่วง

แยกเดือน

Month(LoggedDateTime)

ชื่อเดือน เช่น มกราคม

เพิ่มหนึ่งวัน

[LoggedDateTime]+1

วันอังคารจะกลายเป็นวันพุธ

ด้านบนของหน้า

ข้อควรพิจารณาเกี่ยวกับความเข้ากันได้กับรุ่นก่อนหน้า

ชนิดข้อมูลวันที่/เวลาที่ขยายไม่เข้ากันกับ Microsoft Access เวอร์ชันก่อนหน้า ถ้าชนิดถูกใช้ภายในตาราง Access ภายในเครื่อง Access เวอร์ชันที่ไม่มีฟีเจอร์นี้จะไม่สามารถเปิดฐานข้อมูลได้

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

ด้านบนของหน้า

ใช้ชนิดข้อมูลวันที่/เวลาที่ขยายเป็นสตริงใน VBA

ตัวอย่าง VBA ต่อไปนี้ใช้วิธีการ DAO เพื่อแสดง ใส่ และประเมินชนิดข้อมูลวันที่/เวลาที่ขยายตามตารางด้านล่าง

รหัส

DTEData

DTData

1

1/1/2 1:01:03.1234567 AM

1/1/2001

ชื่อตาราง    DTETableชนิดข้อมูลรหัส:    Autonumberชนิดข้อมูล DTEData:    วันที่และเวลาที่ขยายใหม่ชนิดข้อมูล DTData:    วันที่/เวลา

ตัวอย่าง: การแสดงวันที่และเวลา

ตัวอย่างต่อไปนี้จะแสดงวันที่และเวลา รูปแบบที่ใช้คือ mm/dd/yyyy hh:mm:ss.nnnnnnn ในนาฬิกาแบบ 24 ชั่วโมง รูปแบบไม่สามารถกำหนดเองได้

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
    Debug.Print rs!DTETable
    rs.MoveNext
Loop

ผลลัพธ์    Access แสดง: 01/01/0002 01:01:03.1234567

ตัวอย่าง: การใส่วันที่และเวลา

ตัวอย่างต่อไปนี้จะใส่วันที่และเวลาโดยใช้รูปแบบสตริง รูปแบบวันที่และเวลามาตรฐานทั้งหมดได้รับการรองรับ

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
    .AddNew
    ![DTEData] = "1/1/9999 1:1:1.0123 AM"
    ![DTData] = #1/1/2001#
    .Update
End With

ผลลัพธ์    Access จะเพิ่มแถวใหม่ (ID = 2):

รหัส

DTEData

DTData

1

1/1/2 1:01:03.1234567 AM

1/1/2001

2

1/1/9999 1:01:01.0123000 AM

1/1/2001

ตัวอย่าง: การประเมินนิพจน์คิวรี

ตัวอย่างต่อไปนี้ใช้ ฟังก์ชัน Day เพื่อแยกหมายเลขวันออกจากเขตข้อมูลวันที่และเวลา

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
    Debug.Print "The day of the month is: "&rs!day
    rs.MoveNext
Loop

ผลลัพธ์    Access แสดง:

วันของเดือนคือ: 1 วันของเดือนคือ: 1

ด้านบนของหน้า

ดูเพิ่มเติม

บทนำสู่ชนิดข้อมูลและคุณสมบัติเขตข้อมูล

จัดรูปแบบเขตข้อมูลวันที่และเวลา

สร้างหรือลบเขตข้อมูลวันที่และเวลา

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

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

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

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