Czy jest jakaś różnica między dziesiętnym a liczbowym w SQL Server?
Czy jest jakaś różnica między dziesiętnymi i liczbowymi typami danych w SQL Server?
Kiedy należy używać dziesiętnych, a kiedy numerycznych?
6 answers
Są takie same. Numeryczny jest funkcjonalnie równoważny dziesiętnemu.
MSDN: dziesiętne i numeryczne
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-23 08:14:17
Oto, co standard Sql2003 (§6.1 typy danych) mówi o dwóch:
<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>.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-17 08:49:08
Według mojej wiedzy nie ma różnicy między typami danych liczbowych i dziesiętnych. Są one dla siebie synonimami i można z nich korzystać. Dziesiętne i numeryczne typy danych są numerycznymi typami danych o stałej precyzji i skali.
Edit:
Mówiąc do kilku kolegów może its ma coś wspólnego z tym, że DECIMAL jest standardem ANSI SQL, a NUMERIC jest jednym z bardziej popularnych języków programowania. ...Może ;)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-17 08:00:28
Odpowiedź Joakima Backmana jest konkretna, ale może to przynieść dodatkową jasność.
Jest niewielka różnica. Jak na SQL For Dummies, 8th Edition (2013):
Typ danych dziesiętnych jest podobny do liczbowego. ... Różnica jest że Twoja implementacja może określić precyzję większą niż to, co określ - jeśli tak, to implementacja wykorzystuje większą precyzję. Jeśli nie określa dokładności ani skali, implementacja używa domyślnego wartości, jak to robi z typem numerycznym.
Wydaje się, że różnica w niektórych implementacjach SQL polega na integralności danych. DECIMAL pozwala na przepełnienie z tego, co jest zdefiniowane na podstawie niektórych domyślnych systemów, gdzie jako liczbowe nie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-26 20:52:02
To synonimy, bez różnicy.Dziesiętne i numeryczne typy danych są numerycznymi typami danych o stałej precyzji i skali.
-- 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-17 22:18:26
Są dokładnie takie same. Kiedy go używasz, bądź konsekwentny. Użyj jednego z nich w bazie danych
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-05 15:28:43