مستوى الدرس :مبتدئ
بسم الله الرحمن الرحيم
عنوان الدرس : توابع التاريخ و الوقت في MySQL - الجزء الثاني
التابع now() :
التابع now() لا يأخذ أي وسيط , و هو يقوم بإظهار التاريخ و الوقت الحاليين في جهازك أو المخدم الخاص بك.
أكتب الاستعلام التالي و شاهد النتيجة:
select now();
+-------------------------------+
|now() |
+-------------------------------+
|2004-09-23 13:24:46 |
+-------------------------------+
سيظهر لك التاريخ و الوقت الحاليين, لاحظ أن التنسيق الافتراضي للتابع now() هو:
%Y-%m-%d %T
التابع curdate() :
يعمل هذا التابع نفس عمل التابع now() و لكنه يظهر فقط التاريخ الحالي بدون الوقت كما يلي:
select curdate();
+---------------+
|curdate() |
+---------------+
|2004-09-23 |
+---------------+
طبعاً هذا التابع هو اختصار للجملة current date أي التاريخ الحالي.
التابع curtime() :
يعيد الوقت الحالي
select curtime();
+---------------+
|curtime() |
+---------------+
|13:24:46 |
+---------------+
حساب مجالات التاريخ :
إن مجالات التاريخ من أهم الأمور في الإحصاءات و قواعد البيانات, فقد ترغب مثلاً بإنشاء نموذج يتم من خلاله حساب مبيعات شركتك خلال الشهر الفائت أو خلال الأسبوع الفائت ... الخ, و قد ترغب أيضاً بأن تحصل على تقرير يتضمن معلومات تفصيلية عن فعاليات موقعك في الـ 24 ساعة الماضية.
يمكنك في MySQL حساب التاريخ باستخدام إشارات الجمع و الطرح مع الإشارة إلى الفترة الزمنية (سنة أو شهر أو ساعة ...الخ) التي تريد أن تستخدمها في الحساب.
يعيد الاستعلام التالي التاريخ و الوقت قبل 24 ساعة من تشغيل هذا الاستعلام.
select now()-interval 24 hour as 'last day' ;
+-------------------------------+
|last day |
+-------------------------------+
|2004-09-22 13:47:56 |
+-------------------------------+
لاحظ العبارة interval , هذه العبارة هامة جداً في حساب مجالات التاريخ, فهي تساعد في أن يظهر لنا الوقت و التاريخ بشكل منسق, و أيضاً تجعل عملية الطرح لا تتجاهل الكلمة التي تأتي بعد الرقم المراد طرحه من الوقت.
و لتوضيح ما ذكرنا جرب اكتب الاستعلامين التاليين:
الاستعلام الأول: بدون interval
select now()-24 hour as 'last day' ;
ERROR 1064: You have an error in your SQL syntax near 'as 'last day'' at line 1
لاحظ أن الاستعلام لم يقبل العبارة as و اعتبرها خطأ قواعدي.
الاستعلام الثاني: بدون interval و بدون as
select now()-24 hour ;
+-----------------------+
|hour |
+-----------------------+
|20040923141883 |
+-----------------------+
لاحظ أنه لم يتم طرح 24 ساعة بل تم طرح الرقم 24, إذن العبارة Interval ضرورية جداً في حساب مجالات التاريخ.
سنكمل عن العبارة interval و حساب مجالات التاريخ في الدرس القادم إن شاء الله.
و آخر دعوانا أن الحمد لله رب العالمين
أخوكم أبو عمر