يبدو أنك تواجه مشكلة في تحويل تاريخ من سلسلة نصية إلى تاريخ في SQL Server. الخطأ “Conversion failed when converting date and/or time from character string” يحدث عندما تحاول استخدام دالة تحويل تاريخ مثل CONVERT
أو CAST
والقيمة التي تم تمريرها لهذه الدالة ليست في تنسيق تاريخ صحيح.
في الاستعلام الخاص بك، يبدو أن السبب في الخطأ هو أن قيمة app.[ap_date]
ليست في التنسيق الذي يمكن تحويله إلى تاريخ باستخدام تنسيق التاريخ الذي تم تحديده 105
، الذي يفترض أن يكون التنسيق “dd-mm-yyyy”.
لحل هذه المشكلة، يجب التأكد من أن قيمة app.[ap_date]
تحتوي على تاريخ صحيح في التنسيق الذي تستخدمه (dd-mm-yyyy
في هذه الحالة). يمكنك استخدام دالة TRY_CONVERT
بدلاً من CONVERT
للتحقق من صحة التحويل دون رمي الخطأ. على سبيل المثال:
sqlSELECT app.[Pap_id], reg.[p_id],[p_name],[p_age],[p_gender],[p_mob],[p_specificId],app.[ap_date],app.[reqst_txt]
FROM [dbo].[tblpatientReg] reg
INNER JOIN [dbo].[tblAppoinment] app ON app.[P_id]=reg.[p_id]
WHERE app.[p_status] = 1
ORDER BY TRY_CONVERT(date, app.[ap_date], 105) ASC;
هذا الاستعلام سيقوم بترتيب النتائج حسب التاريخ app.[ap_date]
بشكل صحيح دون رمي الخطأ إذا كان التاريخ غير صالح للتحويل.
المزيد من المعلومات
يبدو أنك تستخدم SQL Server لاستعلام قاعدة البيانات الخاصة بك. في الاستعلام الذي وضعته، تقوم بالانضمام بين جدولين tblpatientReg
و tblAppoinment
باستخدام الحقل P_id
كمفتاح أساسي للارتباط بينهما. كما تقوم بتحديد الحقول التي تريد استرجاعها من الجدولين.
الخطأ الذي تواجهه يحدث عندما تحاول تحويل سلسلة نصية إلى تاريخ، والسبب في ذلك قد يكون بسبب تنسيق غير صحيح للتاريخ في الحقل app.[ap_date]
. تحديدًا، يستخدم تنسيق التحويل 105
الذي يفترض أن يكون التاريخ بتنسيق “dd-mm-yyyy”.
لمعالجة هذا الخطأ، يمكنك التحقق من تنسيق التاريخ في الحقل app.[ap_date]
والتأكد من أنه يتوافق مع التنسيق المتوقع. يمكنك أيضًا استخدام دالة TRY_CONVERT
بدلاً من CONVERT
للتحقق من صحة التحويل دون رمي الخطأ.