در بیشتر مواقع، مقداری که کاربر به پایگاه داده ارائه می کند، از نوع رشته است. چنانچه مقدار مورد انتظار شما نیز رشته باشد، در آن صورت هیچ مشکلی پیش نمی آید. اما اگر مقداری که کاربر فراهم می کند از نوعی غیر از رشته است، برای مثال کاربر به عنوان مقدار یک عدد ارائه می کند، در آن صورت پیش از بکار بردن مقدار بایستی آن را به نوع مورد نیاز تبدیل کرد. بدین معنی که می بایست آن را از رشته به نوع داده ای مورد انتظار تبدیل نمود.
برای این منظور (تبدیل مقدار)، زبان T-SQL تابع CAST() را فراهم می کند. نحوه ی استفاده از آن به ترتیب زیر می باشد:
CAST
( Expression
AS
DataType [ ( length ) ] )
آرگومان Expression آن مقداری است که باید تبدیل شود. DataType نوع داده ای است که می خواهید مقدار آرگومان Expression به آن تبدل شود. DataType می تواند تمامی انواع داده ای که در درس 4 به آن پرداختیم، باشد.
چنانچه تابع مزبور موفق به تبدیل مقدار نشد، یک پیام خطا صادر خواهد کرد. T-SQL یک تابع دیگری به نام TRY_CAST ارائه می کند که می تواند جایگزینی برای CAST باشد (در صورت کارگر نبودن cast می توان از try-cast کمک گرفت). نحوه ی کلی استفاده از آن به صورت زیر می باشد:
TRY_CAST ( expression
AS
data_type [ ( length ) ] )
ین تابع همان آرگومان های CAST را می پذیرد. تفاوت میان دو تابع یاد شده این است که TRY_CAST() در صورت عدم موفقیت در تبدیل، مقدار NULL را برمی گرداند. توصیه می شود بجای CAST() از TRY_CAST() استفاده کنید.
مانند CAST()، تابع CONVERT() برای تبدیل یک مقدار بکار می رود. با این حال دو تابع ذکر شده از یک جنبه با هم تفاوت دارند. تابع CONVERT بر خلاف CAST، این قابلیت را دارد که مقداری را از نوع اصلی و اولیه ی آن به یک نوع کاملا متفاوت تبدیل کند، برای مثال رشته را به عدد تبدیل کند و عکس آن.
دستور نحوی تابع CONVERT() به شرح زیر می باشد:
CONVERT
(DataType [ ( length ) ] , Expression [ , style ])