اخذنا في الدرس السابق الدوال الدرجية في sql
واليوم نأخذ دوال التاريخ والوقت ضمن دروس شرح sql
بالعربي .
على
الرغم من أن
النوع DATETIME
معرف
ضمنيا فى لغة SQL القياسية مشتملا أيضا
على مكوناته YEAR,MONTH,DAY,HOUR,MINUTE,SECOND إلا أنها لاتوضح كيفية تعامل
نظام إدارة قواعد
البيانات DBMS)) معه فيما
يعنى أن كل DBMS له طريقته فى
التعامل مع هذا
النوع وهذه الدوال.
من اهم دوال التاريخ والوقت مايلي :
DateDiff()
تعيد الفرق بين تاريخين .
GetDate()
تعيد السنة والتاريخ و اليوم والساعة والدقيقة والثانية واجزاء الثانية .
CURRENT_DATE يعيد التاريخ الحالي الخاص بنظام ادارة
قاعدة البيانات .
CURRENT_TIME تعيد التوقيت الخاص بنظام ادارة قاعدة
البيانات .
CURRENT_TIMESTAMP تعيد التاريخ والوقت الخاصين بنظام قاعدة
البيانات .
ملاحظة هناك دوال التاريخ والوقت مثل Days, Hours, Minutes, Seconds ولكن
يفضل استخدام DateDiff
كبديل لها .
مثلا الدالة DateDiff
والذي تعيد الفرق بين تاريخين فإذا اردنا إظهار عدد الايام الفاصلة بين التاريخ
الحالي والتواريخ من قيم حقل مثلا RegistrationDate في جدول اسمة RegistrationInfo
سنستخدم الصيغة كالتالي:
Select dateDiff(dd,
RegistrationDate, getDate()) from
registrationInfo
استخدمنا العامل dd
لتحديد صيغة خرج الدالة حيث اننا نريد الفرق بين التاريخين بالايام .
ملاحظة :
Ms-Access
يستخدم الدالة Date بدلاُ من getDate
.
يسمح Oracle
بتنفيذ عملية طرح مباشر لتاريخين .
نأخذ امثلة اكثر عن دوال التاريخ والوقت :
الدالة CURRENT_DATE التي
تعيد قيمة التاريخ الخاص بنظام ادارة قاعدة البيانات فإذا اردنا اظهار التاريخ
الحالي نستخدم الصيغة :
Select CURRENT_DATE
as myDate
الدالة CURRENT_TIME
والتي تعيد قيمة التوقيت الحالي الخاص بنظام نستخدم التعبير التالي :
Select CURRENT_TIME
as myTime
تنوية:
تأكد
عندما تستخدم بيانات من نوع DATETIME
ان
تدخله بطريقة معينة
مثل 3/2/2017 فهذه هى أنسب
طريقة لإخبار DBMS ان هذا
السجل يحوى بيانات من النوع DATETIME لكن
قبل هذا عليك
قراءة تعليمات SQL الخاصة
بالنظام الذى تعمل
عليه.
الى الملتقى
جزاك الله كل خير
ردحذف