سؤال

هل هناك أي فرق بين أنواع البيانات العشرية والرقمية في SQL Server؟

متى يجب أن أستخدم عشري ومتى رقمي؟

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

المحلول

إنهم متشابهون. رقمي يعادل وظيفيا عشرية.

MSDN: عشري وعددية

نصائح أخرى

هذا هو ما تقول إليه أنواع بيانات SQL2003 (§ 6.1) عن الاثنين:

 <exact numeric type> ::=
    NUMERIC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
  | DECIMAL [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
  | DEC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
  | SMALLINT
  | INTEGER
  | INT
  | BIGINT

 ...

21) NUMERIC specifies the data type
    exact numeric, with the decimal
    precision and scale specified by the
    <precision> and <scale>.

22) DECIMAL specifies the data type
    exact numeric, with the decimal scale
    specified by the <scale> and the
    implementation-defined decimal
    precision equal to or greater than the
    value of the specified <precision>.

على حد علمي، لا يوجد فرق بين أنواع البيانات الرقمية والعشرية. إنهم مرادفون لبعضهم البعض ويمكن استخدام أي واحد. أنواع البيانات العشرية والرقمية هي أنواع بيانات رقمية بدقة ثابتة ومقياس.

يحرر:

التحدث إلى عدد قليل من الزملاء ربما يكون له علاقة بعشري كونه معيار ANSI SQL والرقم الرقمي الذي يفضله MIRCOSOFT باعتباره أكثر شيوعا لغات البرمجة. ...يمكن ؛)

إجابة Joakim Backman محددة، ولكن هذا قد يجلب وضوحا إضافيا إليه.

هناك فرق بسيط. وفقا ل SQL للدمى، الطبعة الثامنة (2013):

نوع البيانات العشري يشبه الرقمية. ... الفرق هو أن تنفيذك قد يحدد دقة أكبر من ما تحدده - إذا كان الأمر كذلك، فإن التنفيذ يستخدم الدقة الأكبر. إذا لم تحدد الدقة أو الحجم، فإن التطبيق يستخدم القيم الافتراضية، كما يفعل مع النوع الرقمي.

يبدو أن الفرق في بعض تطبيقات SQL في سلامة البيانات. يسمح العشرية بالفيضان من ما يتم تعريفه بناء على بعض الإعدادات الافتراضية للنظام، حيث لا يعمل الرقمي.

إنها مرادفات، لا يوجد فرق على الإطلاق. أنواع البيانات الرقمية هي أنواع بيانات رقمية مع دقة ومقياس ثابتة.

-- Initialize a variable, give it a data type and an initial value

declare @myvar as decimal(18,8) or numeric(18,8)----- 9 bytes needed

-- Increse that the vaue by 1

set @myvar = 123456.7

--Retrieve that value

select @myvar as myVariable

هم سواء بالضبط. عند استخدامها تكون متسقة. استخدام واحد منهم في قاعدة البيانات الخاصة بك

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