سؤال

لماذا يختلف الإخراج عن هذا الاستعلام

SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))

انتاج:

4,30

هل كانت مفيدة؟

المحلول

يضبط Varchar دائمًا على طول السلسلة التي تم تمريرها. وبالتالي الناتج هو 4.

لدى Char طول افتراضي 30 وبالتالي الناتج هو 30.

نصائح أخرى

لان "عندما لا يتم تحديد N عند استخدام وظائف CAST وتحويلها ، يكون الطول الافتراضي 30". ولكن عندما يتم تطبيق طول datal on a varchar ، فإنه يتجاهل المساحات الخلفية ، بينما بالنسبة لحقل char يكون الطول مجرد حجم الحقل نفسه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top