التواريخ والأوقات مهمة ، فهي تساعد في تنظيم الأشياء ، وهي جزء لا يتجزأ من أي عملية برمجية.

قد يبدو العمل معهم بكفاءة داخل قاعدة البيانات أمرًا مربكًا في بعض الأحيان ، سواء كان العمل عبر مناطق زمنية مختلفة ، وإضافة / طرح التواريخ ، والعمليات الأخرى.

تعلم وظائف MySQL المختلفة المتاحة للتعامل بسهولة مع التواريخ / الأوقات وإدارتها داخل قاعدة البيانات الخاصة بك.

العمل مع المناطق الزمنية

للمساعدة في الحفاظ على الأشياء موحدة ، يجب أن تعمل فقط مع التواريخ / الأوقات في المنطقة الزمنية UTC. في كل مرة تقوم فيها بإنشاء اتصال بقاعدة بيانات MySQL ، يجب عليك تبديل المنطقة الزمنية إلى التوقيت العالمي المنسق (UTC) ، والذي يمكن القيام به باستخدام عبارة SQL التالية:

ضبط TIME_ZONE = "+0: 00"

نظرًا لأنه سيتم الآن حفظ جميع التواريخ بتنسيق UTC ، فأنت تعرف دائمًا ما تعمل معه ، مما يجعل الأمور أكثر بساطة ومباشرة.

عند الضرورة يمكنك بسهولة تحويل المنطقة الزمنية من أي قيمة تاريخ / وقت مع في متناول اليد CONVERT_TZ () وظيفة MySQL. تحتاج إلى معرفة الإزاحة أولاً ، على سبيل المثال ، PST على الساحل الغربي لأمريكا الشمالية هي UTC -08: 00 ، لذلك يمكنك استخدام:

instagram viewer
PolyTime هو أفضل تطبيق لتحويل المنطقة الزمنية لمدن متعددة في وقت واحد

PolyTime ، تطبيق جديد من MakeUseOf ، يجعل من السهل مقارنة المناطق الزمنية في جميع أنحاء العالم. إليك ما يمكنك فعله به وكيف يعمل.

حدد CONVERT_TZ ('2021-02-04 21:47:23'، '+0: 00'، '-8: 00') ؛

وينتج عنه 2021-02-04 13:47:23 وهو بالضبط الصحيح. تم تمرير الحجج الثلاث إلى CONVERT_TZ () هي أولاً التاريخ والوقت / الطابع الزمني الذي تبدأ به (استخدم الآن () للوقت الحالي) ، والثاني سيكون دائمًا '+0:00' نظرًا لأنه يتم فرض جميع التواريخ على UTC في قاعدة البيانات ، والأخير هو الإزاحة التي نرغب في تحويل التاريخ إليها.

إضافة / طرح التواريخ

في كثير من الأحيان تحتاج إلى الإضافة إلى التواريخ أو طرحها منها ، مثل ما إذا كنت بحاجة إلى استرداد السجلات من أسبوع مضى ، أو جدولة شيء ما شهر من الآن.

الحمد لله تمتلك MySQL الامتياز DATE_ADD () و DATE_SUB () وظائف تجعل هذه المهمة سهلة للغاية. على سبيل المثال ، يمكنك طرح أسبوعين من التاريخ الحالي باستخدام عبارة SQL:

حدد DATE_SUB (الآن () ، الفاصل الزمني 2 أسبوع) ؛

إذا أردت بدلاً من ذلك إضافة ثلاثة أيام إلى طابع زمني موجود ، يمكنك استخدام:

حدد DATE_ADD ('2021-02-07 11:52:06' ، الفاصل الزمني 3 أيام) ؛

تعمل كلتا الدالتين بنفس الطريقة ، فالوسيطة الأولى هي الطابع الزمني الذي تبدأ به ، والوسيطة الثانية هي الفاصل الزمني المراد إضافته أو طرحه. يتم دائمًا تنسيق الوسيطة الثانية بنفس التنسيق بدءًا من الكلمة فترة متبوعًا بقيمة عددية والفاصل الزمني نفسه ، والذي يمكن أن يكون أيًا مما يلي: الثانية ، الدقيقة ، الساعة ، اليوم ، الأسبوع ، الشهر ، الربع ، السنة.

على سبيل المثال ، إذا أردت استرداد جميع عمليات تسجيل الدخول التي حدثت في آخر 34 دقيقة ، فيمكنك استخدام عبارة SQL مثل:

حدد * من عمليات تسجيل الدخول حيث login_date> = DATE_SUB (الآن () ، الفاصل الزمني 45 دقيقة) ؛

كما ترى ، سيؤدي هذا إلى استرداد جميع السجلات من ملف تسجيلات الدخول جدول بتاريخ تسجيل دخول أكبر من الوقت الحالي مطروحًا منه 45 دقيقة ، أو بعبارة أخرى 45 دقيقة الماضية.

احصل على الفرق بين التواريخ

تحتاج في بعض الأحيان إلى معرفة مقدار الوقت المنقضي بين تاريخين. يمكنك بسهولة الحصول على عدد الأيام بين تاريخين مختلفين باستخدام ملف DATEDIFF وظيفة ، مثل عبارة SQL أدناه:

حدد التاريخ (الآن () ، "2020-12-15") ؛

ال DATEDIFF تأخذ الدالة وسيطين ، كلاهما عبارة عن طوابع تاريخ / وقت وتعطي عدد الأيام بينهما. سيوضح المثال أعلاه عدد الأيام المنقضية من 15 ديسمبر 2020 حتى اليوم.

للحصول على عدد الثواني بين تاريخين ، فإن TO_SECONDS () يمكن أن تكون الوظيفة مفيدة ، على سبيل المثال:

حدد TO_SECONDS (الآن ()) - TO_SECONDS ('2021-02-05 11:56:41') ؛

سينتج عن ذلك عدد الثواني بين التاريخين المقدمين.

استخراج شرائح من التواريخ

هناك العديد من وظائف MySQL التي تسمح لك باستخراج أجزاء معينة بسهولة من التواريخ ، مثل ما إذا كنت تريد الشهر فقط أو اليوم من السنة أو الساعة. فيما يلي بعض الأمثلة على هذه الوظائف:

حدد الشهر ('2021-02-11 15:27:52') ؛
حدد الساعة (الآن ()) ؛
حدد DAYOFYEAR ('2021-07-15 12:00:00') ؛

قد ينتج عن عبارات SQL أعلاه 02والساعة الحالية و 196 لأن 15 سبتمبر هو اليوم 196 من العام. فيما يلي قائمة بجميع وظائف استخراج التاريخ المتاحة ، كل منها يأخذ وسيطة واحدة فقط ، التاريخ الذي يتم استخراجه منه:

- ثانيا()
- دقيقة()
- ساعة()
- يوم()
- WEEK () - الرقم 0-52 الذي يحدد الأسبوع خلال العام.
- شهر()
- الربع () - العدد 1 - 4 الذي يحدد ربع السنة.
- عام()
- DAYOFYEAR () - يوم السنة (على سبيل المثال. 15 سبتمبر = 196).
- LAST_DAY () - اليوم الأخير في الشهر المحدد.
- DATE () - التاريخ بتنسيق YYYY-MM-DD بدون الوقت.
- TIME () الوقت بصيغة HH: II: SS بدون التاريخ.
- TO_DAYS () - عدد الأيام منذ AD 0.
- TO_SECONDS () - عدد الثواني منذ 0 م.
- UNIX_TIMESTAMP () - عدد الثواني منذ الحقبة (1 يناير 1970)

على سبيل المثال ، إذا كنت تريد فقط استرداد الشهر والسنة اللذين تم إنشاء جميع المستخدمين فيهما ، فيمكنك استخدام عبارة SQL مثل:

SELECT id ، MONTH (created_at) ، YEAR (created_at) من المستخدمين ؛

سيؤدي هذا إلى استرداد جميع السجلات داخل المستخدمين الجدول وإظهار المعرف # ، والشهر والسنة التي تم فيها إنشاء كل مستخدم.

تجميع السجلات حسب فترة التاريخ

أحد الاستخدامات الممتازة لوظائف التاريخ هو القدرة على تجميع السجلات حسب فترة التاريخ باستخدام مجموعة من ضمن عبارات SQL الخاصة بك. على سبيل المثال ، ربما ترغب في سحب المبلغ الإجمالي لجميع الطلبات في عام 2020 مجمعة حسب الشهر. يمكنك استخدام جملة SQL مثل:

حدد MONTH (created_at) ، SUM (amount) من الطلبات التي تم إنشاؤها في BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59' GROUP BY MONTH (created_at) ؛

سيؤدي هذا إلى استرداد جميع الطلبات المقدمة في عام 2020 ، وتجميعها حسب الشهر الذي تم إنشاؤها فيه ، وإرجاع 12 سجلًا توضح المبلغ الإجمالي المطلوب كل شهر من العام.

يرجى ملاحظة أنه من الأفضل دائمًا تجنب استخدام وظائف التاريخ مثل عام() ضمن جملة WHERE من عبارات SQL ، وبدلاً من ذلك استخدم امتداد ما بين عامل التشغيل كما هو موضح في المثال أعلاه.

لا تخلط مع التواريخ مرة أخرى

باستخدام المعرفة المذكورة أعلاه ، يمكنك الآن العمل بكفاءة وترجمتها وتنفيذها في التواريخ والأوقات في مجموعة واسعة من حالات الاستخدام.

تذكر دائمًا استخدام التوقيت العالمي المنسق (UTC) عند التعامل مع التواريخ من أجل التبسيط ، واستفد من النصائح المذكورة أعلاه للإدارة بكفاءة التواريخ داخل برنامجك ، سواء أكان ذلك لإكمال العمليات الحسابية البسيطة أو سحب التقارير المجمعة حسب التاريخ بسهولة فترات.

إذا كنت جديدًا إلى حد ما على SQL ، فتأكد من التحقق من هذه أوامر SQL الأساسية للمساعدة في تحسين استخدام SQL.

بريد الالكتروني
كيفية إنشاء مستندات وتقارير احترافية في برنامج Microsoft Word

يفحص هذا الدليل عناصر تقرير احترافي ويراجع هيكلة وتصميم وإنهاء المستند الخاص بك في Microsoft Word.

مواضيع ذات صلة
  • غير محدد
عن المؤلف
مات ديزاك (16 مقالة منشورة)المزيد من Matt Dizak

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

خطوة أخرى أيضا…!

يرجى تأكيد عنوان بريدك الإلكتروني في البريد الإلكتروني الذي أرسلناه لك للتو.

.