عند التعامل مع حقول الوقت في قاعدة البيانات والحاجة إلى تغيير الوقت إلى وقت معين دون تغيير التاريخ، يمكننا استخدام استعلام SQL لتحقيق ذلك بدون استخدام متغيرات أو تعريف متغيرات جديدة. في هذا السياق، سنستخدم اللغة SQL لتحقيق الهدف المطلوب.
لتحقيق هذا الهدف، يمكننا استخدام الدالة CONVERT
لتحويل التواريخ الحالية إلى سلسلة نصية تحتوي على التواريخ المرغوبة. هنا يأتي الاستعلام الذي يقوم بذلك:
sqlSELECT CONVERT(VARCHAR, CONVERT(DATETIME, CONVERT(VARCHAR, YourDateTimeColumn, 101), 101), 120) AS FormattedDateTime
FROM YourTable;
يقوم هذا الاستعلام بتحويل الحقل YourDateTimeColumn
إلى سلسلة نصية باستخدام تنسيق 101
، الذي يعيد التاريخ في الصيغة MM/DD/YYYY، ثم يحول هذه السلسلة إلى نوع DATETIME
مرة أخرى باستخدام تنسيق 101
. أخيرًا، يتم استخدام تنسيق 120
للحصول على الناتج النهائي في الصيغة المطلوبة MM/DD/YYYY HH:MI:SS.
يرجى استبدال YourDateTimeColumn
و YourTable
بالأسماء الفعلية لحقل الوقت والجدول في قاعدة البيانات الخاصة بك.
بهذا الشكل، ستحصل على نتائج متوقعة مع جميع الأوقات المحددة لتكون منتصف الليل (12:00:00 AM) دون الحاجة إلى استخدام T-SQL أو تعريف متغيرات.
المزيد من المعلومات
تعمل الاستعلام السابق على تحويل الأوقات في حقل YourDateTimeColumn
إلى منتصف الليل (12:00:00 AM) دون تغيير في التاريخ. دعونا نوسع على ذلك لفهم المزيد من التفاصيل حول الاستعلام والأدوات التي تم استخدامها:
-
استخدام CONVERT:
- الجزء الأول من CONVERT:
CONVERT(VARCHAR, YourDateTimeColumn, 101)
يقوم بتحويل التواريخ إلى سلسلة نصية باستخدام تنسيق101
، الذي يُظهر التاريخ في الصيغة MM/DD/YYYY. - الجزء الثاني من CONVERT:
CONVERT(DATETIME, CONVERT(VARCHAR, YourDateTimeColumn, 101), 101)
يقوم بتحويل السلسلة النصية المستخرجة في الخطوة السابقة إلى نوعDATETIME
باستخدام نفس التنسيق101
.
- الجزء الأول من CONVERT:
-
استخدام العبارة AS:
AS FormattedDateTime
تستخدم لإعادة تسمية العمود الناتج من الاستعلام إلىFormattedDateTime
. يمكنك استخدام أي اسم تفضله للعمود.
-
استخدام العبارة FROM:
FROM YourTable
تحدد الجدول الذي يتم استرجاع البيانات منه. يجب استبدالYourTable
بالجدول الفعلي الذي يحتوي على حقلYourDateTimeColumn
.
باستخدام هذا الاستعلام، ستحصل على نتائج تظهر التواريخ مع أوقاتها المعدلة لتكون منتصف الليل (12:00:00 AM)، وذلك دون الحاجة إلى استخدام T-SQL أو إعلان متغيرات إضافية. يُظهر هذا النهج كفاءة اللغة SQL في إجراء تحويلات متقدمة ودقيقة على البيانات.