ชนิดข้อมูลวันที่/เวลาที่ขยายจะจัดเก็บข้อมูลของวันที่และเวลา และคล้ายกับชนิดข้อมูลวันที่/เวลา แต่จะระบุช่วงวันที่ที่กว้างกว่า ความแม่นยำของเศษส่วนที่สูงขึ้น และความเข้ากันได้กับชนิดข้อมูล เวลาวันที่2 ของ SQL Server เมื่อคุณนำเข้าหรือลิงก์ข้อมูล Access ไปยัง SQL Server คุณสามารถแมปเขตข้อมูลของวันที่/เวลาที่ขยายของ Access ไปยังคอลัมน์ เวลาวันที่2 ของ SQL Server ได้อย่างต่อเนื่อง สำหรับข้อมูลเพิ่มเติม ให้ดู เวลาวันที่2 (Transact-SQL)
คำเตือน เมื่อคุณสร้างนิพจน์และใช้ฟังก์ชันวันที่/เวลาตามชนิดข้อมูลวันที่/เวลาที่ขยายใน Access คุณอาจสูญเสียความแม่นยำในการคำนวณหรือพบปัญหาอื่นๆ เกี่ยวกับผลลัพธ์ เราทราบถึงปัญหานี้และวางแผนที่จะรองรับนิพจน์และฟังก์ชันให้ดียิ่งขึ้นในรุ่นที่กำลังมาถึง ในฐานะวิธีแก้ปัญหาชั่วคราว คุณสามารถสร้างแบบสอบถามแบบพาส-ทรูเพื่อใช้นิพจน์ SQL Server ที่เทียบเท่าและฟังก์ชันวันที่/เวลา สำหรับข้อมูลเพิ่มเติม ให้ดู การเปรียบเทียบ Access SQL กับ SQL Server TSQL
ในบทความนี้
การเปรียบเทียบชนิดข้อมูลวันที่/เวลาและวันที่/เวลาที่ขยาย
ตารางต่อไปนี้จะสรุปความแตกต่างที่สำคัญระหว่างสองชนิดข้อมูล
แอตทริบิวต์ |
วันที่/เวลา |
วันที่และเวลาที่ขยาย |
---|---|---|
ค่าน้อยที่สุด |
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ดูเพิ่มเติม
บทนำสู่ชนิดข้อมูลและคุณสมบัติเขตข้อมูล