كيفية تحويل رقم Datepart إلى اسم اليوم في SQL Server

إذا كنت قد عملت من قبل مع SQL Server، فمن المحتمل أنك واجهت حالات تحتاج فيها إلى استخراج أجزاء معينة من التاريخ لتسهيل الفهم والاستخدام. أحد المتطلبات الشائعة هو تحويل التمثيل الرقمي لليوم—الذي تم الحصول عليه من دالة datepart—إلى اسمه المقابل (مثل “الاثنين” أو “الثلاثاء”). في هذه التدوينة، سنستكشف كيفية تحقيق هذا التحويل بسرعة في SQL Server.

فهم المشكلة

عند استخدامك لدالة SQL Server datepart، فإن استرجاع يوم الأسبوع من تاريخ معين سوف يعطيك رقمًا بين 1 و 7، حيث:

  • 1 = الأحد
  • 2 = الاثنين
  • 3 = الثلاثاء
  • 4 = الأربعاء
  • 5 = الخميس
  • 6 = الجمعة
  • 7 = السبت

على سبيل المثال، تنفيذ الاستعلام التالي يُرجع يوم الأسبوع كرقم:

SELECT DATEPART(dw, GETDATE());

بينما يمكن أن تكون هذه القيمة الرقمية مفيدة، إلا أنها ليست صديقة جدًا للمستخدم؛ هدفنا هو تحويل هذه النتيجة الرقمية إلى تنسيق أكثر قابلية للقراءة، وتحديدًا اسم اليوم.

الحل: استخدام datename

للحصول على اسم اليوم بدلاً من رقم، يمكنك استخدام دالة DATENAME في SQL Server. تسمح لك دالة DATENAME بإرجاع اسم جزء تاريخ معين لتاريخ محدد. إليك كيف يمكنك القيام بذلك:

الخطوة 1: استخدام دالة DATENAME

يمكنك ببساطة استبدال دالة datepart بـ datename في استعلام SQL الخاص بك كما يلي:

SELECT DATENAME(weekday, GETDATE());

شرح الاستعلام:

  • DATENAME: هذه الدالة تأخذ برامترين؛ الأول هو جزء التاريخ الذي تريد استرجاعه (في هذه الحالة، weekday)، والثاني هو التاريخ الذي تريد استخراج المعلومات منه (في هذه الحالة، التاريخ الحالي الذي يتم إرجاعه بواسطة GETDATE()).
  • GETDATE(): هذه الدالة تُرجع الطابع الزمني الحالي لنظام قاعدة البيانات.

الخطوة 2: تشغيل الاستعلام

عند تنفيذ عبارة SELECT أعلاه، ستقوم بإرجاع اسم اليوم الحالي، مثل “الأحد” أو “الاثنين”، مما يجعل من السهل فهمه في لمحة.

الخاتمة

من خلال استخدام دالة DATENAME في SQL Server، يمكنك بسهولة تحويل تمثيل اليوم الرقمي إلى اسم يوم أكثر معنى. يمكن أن توفر لك هذه السطر البسيط الوقت وتجعل مخرجات بياناتك أكثر قابلية للتفسير، خاصة في التقارير أو واجهات المستخدم.

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

لا تتردد في تجربة تواريخ مختلفة عن طريق استبدال GETDATE() بقيمة التاريخ المحددة الخاصة بك لترى كيف تعمل هذه الدوال!