كيفية تحويل رقم 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()
بقيمة التاريخ المحددة الخاصة بك لترى كيف تعمل هذه الدوال!