دسته بندی ها
12:37 1399/10/30

بهترین نوع داده برای ذخیره کردن مبلغ پول در دیتابیس چیست ؟

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : سی شارپ Vb.Net Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 9042
پاسخ دهنده : fateme 13:17 1399/10/30

بهترین نوع داده برای ذخیره کردن مبلغ پول در دیتابیس

برای نگهداری مبلغ پول شما میتونید از چندین نمونه Data Type استفاده کنید. بستگی به این داره که چه نوع واحد پولی رو می خواید نگهداری کنید. مثلا دلار یا یورو یا تومان ... .نکته دیگه اینکه آیا می خواید مبالغ خرد رو هم نگهداری کنید یا فقط مبالغ رند. به ترتیب Data Type هایی که برای نگهداری پول مناسب هستند رو بررسی می کنیم.

 

نوع داده ای Money در Sql Server برای نگهداری پول

در Sql Server یک نوع داده ای برای نگهداری پول وجود دارد به نام Money. شما میتونید برای نگهداری مبلغ از این نوع داده ای استفاده کنید. دقت کنید که این نوع داده اعشار و یا به عبارتی مبالغ خرد را حذف می کند. به عنوان مثال کدهای زیر را برای درک بهتر توجه کنید :

DECLARE
    @mon1 MONEY,
    @mon2 MONEY,
    @mon3 MONEY,
    @mon4 MONEY

SELECT @mon1 = 100, @mon2 = 339, @mon3 = 10000

SET @mon4 = @mon1/@mon2*@mon3

SELECT @mon4 AS moneyresult

//Output
2949.0000

همانطور که ملاحظه می کنید خروجی نهایی یک عدد بدون در نظر گرفتن مقادیر اعشاری می باشد. در سی شارپ هم نوع داده ای Decimal برای نگهداری مقادیر دیتابیس استفاده میشه.

 

نوع داده ای Decimal در Sql Server برای نگهداری پول

اما Data Type دیگری که برای نگهداری پول در Sql Server می توان از آن استفاده کرد نوع داده ای Decimal می باشد. مزیت این نوع داده ای نسبت به Money این می باشد که شما می توانید مقادیر خرد و اعشاری را هم نگهداری کنید و حساب و کتاب دقیق تری داشته باشید. برای درک بهتر به مثال زیر توجه کنید.

DECLARE
    @num1 DECIMAL(19,4),
    @num2 DECIMAL(19,4),
    @num3 DECIMAL(19,4),
    @num4 DECIMAL(19,4)

    SELECT @num1 = 100, @num2 = 339, @num3 = 10000

    SET @num4 = @num1/@num2*@num3

    SELECT @num4 AS numericresult

//Output
2949.8525

در مثال بالا برای نگهداری پول متغیری از نوع (19,4)Decimal تعریف کرده ایم. عدد اول در پرانتز یعنی تا 19 رقم حساب کن و عدد دوم هم یعنی تا 4 رقم اعشار را محاسبه و نگهداری کن. برای افراد یا مواردی که نیاز به حساب و کتاب دقیق می باشد این نوع پیشنهاد می شود. در سی شارپ هم نوع داده ای Decimal برای نگهداری این مقادیر میتونید استفاده کنید.

 

نوع داده ای bigint در Sql Server برای نگهداری پول

نوع داده ای دیگری که می توان از آن برای نگهداری پول استفاده کرد bigint می باشد. نوع داده ای bigint توانایی نگهداری عددی بین -9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 را دارا می باشد که تقریبا برای مبالغ پولی کافی می باشد. این نوع داده ای یک عدد صحیح می باشد و اعشار را محاسبه نمی کند. برای نگهداری مبالغ ریالی و یا تومان به نظر این نوع داده ای مناسب می باشد. در سی شارپ هم برای کار با مبلغ می تونید از نوع داده ای long استفاده کنید.

ویرایش شده در سه شنبه 30 دی 1399 ساعت 13:24:29
به این پاسخ امتیاز بدهید    2
امتیاز: 1617 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود