يقوم نوع البيانات "تمديد التاريخ/الوقت" بتخزين معلومات التاريخ والوقت، ويشبه نوع البيانات "التاريخ/الوقت"، ولكنه يوفر نطاقًا أكبر للتاريخ ودقة جزئية أعلى وتوافق مع نوع التاريخ "التاريخ والوقت 2 في SQL Server". عند استيراد بيانات Access أو ربطها بـ SQL Server، يمكنك التخطيط بشكل متناسق لحقل "تمديد التاريخ والوقت في Access" ليصبح عمود "التاريخ والوقت 2 في SQL Server". للحصول على مزيد من المعلومات، اطلع على التاريخ والوقت 2 (المعاملات-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).
إنشاء ارتباط واستيراد يمكنك أيضا الربط بقواعد البيانات التي تحتوي على نوع بيانات مطابق، مثل نوع البيانات التاريخ والوقت 2 SQL Server، أو الاستيراد منها. يتم دعم قواعد بيانات 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 |
اسم الجدول: جهاز البيانات الطرفي (DTET)
نوع بيانات المعرف: ترقيم تلقائي
نوع بيانات جهاز البيانات الطرفي (DTE): تمديد التاريخ والوقت
نوع البيانات لجهاز البيانات الطرفي: التاريخ والوقت
مثال: عرض التاريخ والوقت
يعرض المثال التالي التاريخ والوقت. التنسيق المستخدم هو الشهر/اليوم/السنة الساعة:الدقيقة:الثانية.النانو ثانية في ساعة بتقويم 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
الدالات التي تعمل مع تمديد التاريخ والوقت في تعبيرات الاستعلام
تعمل الدالات التالية مع تمديد التاريخ والوقت في تعبيرات الاستعلام:
السنة والشهر ويوم الأسبوع واليوم والساعة والدقيقة والثانية وDateAdd وDateDiff وDatePart.
بالإضافة إلى ذلك، توجد إصدارات موسعة من بعض الدالات التي لا يمكنها استخدام نوع الوسيطة لتحديد ما إذا كان يجب أن ينتج عن العملية الحسابية قيمة "تمديد التاريخ/الوقت". هذه هي:
DateValueExtended وTimeValueExtended وDateSerialExtended وTimeSerialExtended وNowExtended وDateExtended وDateTimeExtended وTimeExtended.
تعمل هذه الدالات بالطريقة نفسها التي تعمل بها الدالة بدون كلمة "Extended" في النهاية، ولكنها ترجع قيمة "تمديد التاريخ والوقت"، بدلا من قيمة التاريخ/الوقت.
لاحظ أنه لم يتم تعديل VBA، ولن يتم التعرف على الوظائف الجديدة في التعليمات البرمجية ل VBA، ولن تعمل الوظائف الموجودة مع قيم "تمديد التاريخ والوقت".
مثال
الاستعلام الأصلي:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
الآن، قم بتغيير DateValue([OrderDate]) إلى DateValueExtended([OrderDate])، مما سيؤدي إلى إصلاح التعبير الأول.
تجدر الإشارة إلى أن Access لا يعالج الدالة "تنسيق" للأعمدة "تمديد التاريخ والوقت"؛ يمكنك فقط تعيين الخاصية "تنسيق" للعمود.
وبالتالي، إذا كنت تستخدم:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
وقم بتعيين الخاصية "تنسيق " للعمود الثاني على "تاريخ قصير"، فستحصل على النتائج التي تريدها.