يتم استخدام الدالة CAST() في MySQL لتحويل قيمة من نوع بيانات إلى نوع بيانات آخر محدد في التعبير. يتم استخدامه في الغالب مع عبارات WHERE وHAVING وJOIN. تشبه هذه الوظيفة وظيفة CONVERT () في ماي إس كيو إل .
فيما يلي أنواع البيانات التي تعمل عليها هذه الوظيفة بشكل مثالي:
نوع البيانات | الأوصاف |
---|---|
تاريخ | يقوم بتحويل القيمة إلى نوع بيانات DATE بالتنسيق 'YYYY-MM-DD'. وهو يدعم نطاق التاريخ من '01-01-1000' إلى '31-12-9999'. |
التاريخ والوقت | يقوم بتحويل القيمة إلى نوع بيانات DATETIME بالتنسيق 'YYYY-MM-DD HH:MM:SS'. وهو يدعم النطاق من '1000-01-01 00:00:00' إلى '9999-12-31 23:59:59'. |
وقت | يقوم بتحويل القيمة إلى نوع بيانات TIME بتنسيق 'HH:MM:SS'. وهو يدعم النطاق الزمني من '-838:59:59' إلى '838:59:59'. |
شار | يقوم بتحويل قيمة إلى نوع بيانات CHAR الذي يحتوي على سلسلة ذات طول ثابت. |
عدد عشري | يقوم بتحويل قيمة إلى نوع البيانات DECIMAL الذي يحتوي على سلسلة عشرية. |
وقعت | يقوم بتحويل قيمة إلى نوع بيانات SIGNED الذي يحتوي على عدد صحيح 64 بت. |
غير موقعة | يقوم بتحويل قيمة إلى نوع البيانات غير الموقعة الذي يحتوي على عدد صحيح 64 بت غير الموقع. |
الثنائية | يقوم بتحويل قيمة إلى نوع البيانات BINARY الذي يحتوي على السلسلة الثنائية. |
بناء الجملة
فيما يلي بناء جملة وظيفة CAST () في MySQL:
CAST(expression AS datatype);
شرح المعلمة
يقبل بناء الجملة هذا معلمتين، سيتم مناقشتهما أدناه:
معامل | متطلبات | الأوصاف |
---|---|---|
تعبير | مطلوب | إنها قيمة سيتم تحويلها إلى نوع بيانات محدد آخر. |
نوع البيانات | مطلوب | إنها قيمة أو نوع بيانات يجب تحويل قيمة التعبير فيه. |
قيمة الإرجاع
بعد التحويل، سيُرجع قيمة نوع البيانات الذي نريد تحويله.
دعم إصدار MySQL
يمكن أن تدعم وظيفة CAST إصدارات MySQL التالية:
- ماي إس كيو إل 8.0
- ماي إس كيو إل 5.7
- ماي إس كيو إل 5.6
- ماي إس كيو إل 5.5
- ماي إس كيو إل 5.1
- ماي إس كيو إل 5.0
- ماي إس كيو إل 4.1
- ماي إس كيو إل 4.0
دعونا نفهم وظيفة MySQL CAST() من خلال الأمثلة التالية. يمكننا استخدام الدالة CAST مع عبارة SELECT مباشرة.
مثال 1
يقوم هذا البيان بتحويل القيمة إلى نوع بيانات DATE.
SELECT CAST('2018-11-30' AS DATE);
انتاج |
مثال 2
يقوم هذا البيان بتحويل القيمة إلى نوع البيانات الموقعة.
SELECT CAST(3-6 AS SIGNED);
انتاج |
مثال 3
يقوم هذا البيان بتحويل القيمة إلى نوع البيانات غير الموقعة.
SELECT CAST(3-6 AS UNSIGNED);
انتاج |
مثال 4
في بعض الأحيان تكون هناك حاجة لتحويل السلسلة إلى عدد صحيح بشكل صريح، استخدم العبارة التالية لتحويل القيمة إلى نوع بيانات عدد صحيح.
SELECT (3 + CAST('3' AS SIGNED))/2;
انتاج |
مثال 5
تقوم العبارة التالية أولاً بتحويل قيمة عدد صحيح إلى نوع بيانات سلسلة ثم إجراء التسلسل مع سلسلة محددة أخرى.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
انتاج |
مثال 6
في هذا المثال، سنرى كيف تعمل الدالة CAST مع الجدول. دعونا أولا نقوم بإنشاء جدول طلبات ' والذي يحتوي على البيانات التالية:
في الجدول أعلاه، يمكننا أن نرى أن Order_Date موجود في نوع البيانات DATE. الآن، إذا أردنا الحصول على اسم منتج بين نطاقات زمنية محددة، فقم بتنفيذ العبارة أدناه. هنا، يتم تحويل السلسلة الحرفية إلى قيمة الطابع الزمني قبل تقييم شرط WHERE.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
سينتج عن هذا البيان المخرجات التالية: