يقوم نوع البيانات "تمديد التاريخ/الوقت" بتخزين معلومات التاريخ والوقت، ويشبه نوع البيانات "التاريخ/الوقت"، ولكنه يوفر نطاقًا أكبر للتاريخ ودقة جزئية أعلى وتوافق مع نوع التاريخ "التاريخ والوقت 2 في SQL Server". عند استيراد بيانات Access أو ربطها بـ SQL Server، يمكنك التخطيط بشكل متناسق لحقل "تمديد التاريخ والوقت في Access" ليصبح عمود "التاريخ والوقت 2 في SQL Server". لمزيد من المعلومات، راجع datetime2 (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. كما يمكنك تحويل نوع البيانات "التاريخ والوقت" إلى "تمديد التاريخ والوقت" طريقة عرض تصميم الجدول. يتم دعم استخدام هذا النوع من البيانات كحقل مفتاح أساسي. للحصول على مزيد من المعلومات، اطلع على إنشاء جدول وإضافة حقول.
إدخال التاريخ والوقت يشبه إدخال قيم التاريخ والوقت نوع بيانات التاريخ/الوقت، باستثناء أنه يمكنك أيضا إدخال نانو ثانية كسرية. على سبيل المثال:
- تنسيق الإدخال: الشهر/اليوم/السنة الساعة:الدقيقة:الثانية.نانو ثانية
- مثال: 06/15/1215 09:25:3.234
إذا وُجِدت أكثر من 7 قيم كسرية من النانو ثانية، فسوف يتم تقريبها إلى 7 أرقام. للتحكم في عرض النانو ثانية الكسرية، افتح الجدول، على الشريط حدد الحقول، وفي المجموعة تنسيق، حدد
زيادة المنازل العشرية أو
إنقاص المنازل العشرية .
التنسيق يستخدم كل من أنواع البيانات "التاريخ/الوقت" و"التاريخ/الوقت الموسع" سلاسل تنسيق قياسية مماثلة من "التاريخ العام" و"التاريخ الطويل" و"التاريخ المتوسط" و"التاريخ القصير" و"الوقت الطويل" و"الوقت المتوسط" و"الوقت القصير" وكلاهما يدعم التنسيق المخصص. بالنسبة إلى نوع البيانات "تمديد التاريخ والوقت"، تدعم التنسيقات القياسية المستندة إلى الوقت الدقة الكسرية للنانو ثانية كذلك. يتم ضبط التنسيق الافتراضي لنوع البيانات "تمديد التاريخ والوقت" على تنسيقيْ التاريخ العام والوقت الطويل، ويتبع الخيارات المحددة في الإعدادات الإقليمية في Windows. يمكنك أيضًا التحكم في تنسيق الدقة الكسرية باستخدام الخاصية القيم العشرية لتحديد عدد الأرقام الموجودة إلى يسار الفاصلة العشرية (1: 7).
الارتباط والاستيراد يمكنك أيضا إنشاء ارتباط إلى قواعد البيانات أو استيرادها منها بنوع بيانات مطابق، مثل نوع بيانات SQL Server datetime2. يتم دعم قواعد بيانات SQL Server الإصدار 2014 أو الإصدارات الأحدث. يتطلب نوع البيانات "تمديد التاريخ والوقت" استخدام برنامج التشغيل Microsoft ODBC لإصدار SQL Server 11 أو الإصدارات الأحدث. نوصي باستخدام برنامج تشغيل Microsoft ODBC 13.1 SQL Server. يتم أيضًا دعم استخدام OLE DB. لمزيد من المعلومات، راجع دعم نوع البيانات لتحسينات تاريخ ووقت ODBCواستخدام ميزات التاريخ والوقت المحسنة (OLE DB).
النماذج والتقارير يمكنك إضافة نوع البيانات "تمديد التاريخ/الوقت" إلى نموذج أو تقرير. في النموذج، يمكنك استخدام منتقي التاريخ وقناع الإدخال لإدخال تاريخ باستخدام النطاق الأكبر، ولكن ليس بالدقة الكسرية للنانو ثانية.
دعم التعبير يدعم نوع البيانات "تمديد التاريخ/الوقت " الدالات التجميعية SQL وتقييم التعبير. على سبيل المثال، باستخدام التاريخ والوقت المُسجَّلين كحقل يحتوي على نوع البيانات "تمديد التاريخ والوقت":
| المهمة | مثال | النتيجة |
|---|---|---|
| البحث عن القيمة الدنيا | الحد الأدنى (التاريخ والوقت المُسجَّلان) | التاريخ والوقت الأقرب ضمن النطاق |
| استخراج الشهر | الشهر (التاريخ والوقت المُسجَّلان) | اسم الشهر، مثل "يناير" |
| إضافة يوم واحد | [التاريخ والوقت المُسجَّلان]+1 | سيصبح الثلاثاء يوم الأربعاء |
اعتبارات التوافق مع الإصدارات السابقة
نوع البيانات "تمديد التاريخ والوقت" غير متوافق مع الإصدارات السابقة من Microsoft Access. إذا تم استخدام النوع داخل جدول Access محلي، فلن تتمكن إصدارات Access التي لا تتضمن الميزة من فتح قاعدة البيانات.
يمكنك تمكين نوع البيانات "تمديد التاريخ/الوقت" أو تعطيله لربط العمليات واستيرادها باستخدام خيار الوصول إلى قاعدة البيانات الحاليدعم نوع البيانات الموسعة للتاريخ/الوقت للجداول المرتبطة/الجدولة. للمزيد من المعلومات، راجع تعيين خيارات المستخدم لقاعدة البيانات الحالية.
استخدام نوع البيانات "تمديد التاريخ والوقت" كسلسلة في VBA
تستخدم أمثلة VBA التالية طرق كائنات الوصول إلى البيانات (DAO) لعرض نوع البيانات "تمديد التاريخ والوقت" وإدخاله وتقييمه استنادًا إلى الجدول أدناه.
| المعرّف | بيانات جهاز البيانات الطرفي (DTE) | البيانات الطرفية (DT) |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 ص | 2001/1/1 |
اسم الجدول: DTETable
نوع بيانات المعرف: الترقيم التلقائي
نوع بيانات DTEData: تمديد التاريخ/الوقت
نوع بيانات DTData: التاريخ/الوقت
مثال: عرض التاريخ والوقت
يعرض المثال التالي التاريخ والوقت. التنسيق المستخدم هو الشهر/اليوم/السنة الساعة:الدقيقة:الثانية.النانو ثانية في ساعة بتقويم 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 صفا جديدا (المعرف = 2):
| المعرّف | بيانات جهاز البيانات الطرفي (DTE) | البيانات الطرفية (DT) |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 ص | 2001/1/1 |
| 2 | 1/1/9999 1:01:01.0123000 ص | 2001/1/1 |
مثال: تقييم تعبير استعلام
يستخدم المثال التالي الدالة 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
الدالات التي تعمل مع "التاريخ/الوقت الموسع" في تعبيرات الاستعلام
تعمل الدالات التالية مع Date/Time Extended في تعبيرات الاستعلام:
Year و Month و Weekday و Day و Hour و Minute و Second و DateAdd و DateDiff و DatePart.
بالإضافة إلى ذلك، هناك إصدارات موسعة من بعض الدالات التي لا يمكنها استخدام نوع الوسيطة لتحديد أن العملية الحسابية يجب أن تنتج قيمة Date/Time Extended. هذه هي:
DateValueExtended وTimeValueExtended و DateSerialExtended و TimeSerialExtended و NowExtended و DateExtended و DateTimeExtended و TimeExtended.
تعمل هذه الدالات بنفس الطريقة التي تعمل بها الدالة بدون "موسع" في النهاية، ولكنها ترجع قيمة Date/Time Extended، بدلا من قيمة Date/Time.
لاحظ أنه لم يتم تعديل VBA، ولن يتم التعرف على الدالات الجديدة في التعليمات البرمجية ل VBA، ولن تعمل الدالات الموجودة مع قيم Date/Time Extended.
مثال
الاستعلام الأصلي:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
الآن، قم بتغيير DateValue([OrderDate]) إلى DateValueExtended([OrderDate])، الذي سيصلح التعبير الأول.
لاحظ أن Access لا يتعامل مع الدالة Format لأعمدة Date/Time Extended؛ يمكنك فقط تعيين الخاصية Format للعمود.
لذلك، إذا كنت تستخدم:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
وتعيين الخاصية تنسيق للعمود الثاني إلى "تاريخ قصير"، ستحصل على النتائج التي تريدها.