Próbuję ustalić dziesiętny typ danych kolumny w SQL Server. Muszę być w stanie przechowywać wartości takie jak 15,5, 26,9, 24,7, 9,8 itd
Przypisałem decimal(18, 0)
do typu danych kolumny, ale nie pozwala mi to przechowywać tych wartości.
Jak to zrobić?
sql
sql-server
types
decimal
Alex
źródło
źródło
decimal(4,2)
dopuszcza 2 cyfry przed i 2 cyfry po przecinku. „4.5” można zapisać bez problemu - i liczbowo „4.5” i „4.50” są identycznevarchar
do przechowywania wartości dziesiętnej !!Powinieneś użyć w następujący sposób:
m
to liczba cyfr, które może zawierać dziesiętny.a
to maksymalna liczba cyfr, jaką możesz mieć po przecinku.http://www.tsqltutorials.com/datatypes.php zawiera opisy wszystkich typów danych.
źródło
Ustawieniami
Decimal
są jego dokładność i skala lub w normalnym języku, ile cyfr może mieć liczba i ile cyfr chcesz mieć po prawej stronie przecinka dziesiętnego.Więc jeśli umieścisz
PI
wDecimal(18,0)
będzie rejestrowane jako3
?Jeśli umieścisz
PI
wDecimal(18,2)
będzie rejestrowane jako3.14
?Jeśli położy
PI
sięDecimal(18,10)
być rejestrowane jako3.1415926535
.źródło
Przez większość czasu używam dziesiętnych (9,2), które zajmują najmniej miejsca (5 bajtów) w formacie dziesiętnym sql.
Precyzja => Bajty pamięci
Może przechowywać od 0 do 9 999 999,99 (7 cyfr w przód + 2 cyfry za przecinkiem = ogółem 9 cyfr), co jest wystarczająco duże dla większości wartości.
źródło
Możesz tego spróbować
Długość liczb powinna wynosić całkowicie 18. Długość liczb po przecinku powinna wynosić tylko 1 i nie więcej.
źródło
W MySQL DB
decimal(4,2)
pozwala na wprowadzenie tylko 4 cyfr. Jak widziszdecimal(4,2)
, oznacza to, że możesz wprowadzić łącznie 4 cyfry, z których dwie cyfry mają być przechowywane po przecinku.Tak więc, jeśli wpiszesz 100.0 w bazie danych MySQL, wyświetli się błąd typu „Wartość poza zakresem dla kolumny”.
Możesz więc wpisać tylko w tym zakresie: od 00.00 do 99,99.
źródło
Pozostałe odpowiedzi są prawidłowe. Zakładając, że twoje przykłady odzwierciedlają pełen zakres możliwości, czego potrzebujesz
DECIMAL(3, 1)
. LubDECIMAL(14, 1)
pozwoli w sumie 14 cyfr. Twoim zadaniem jest zastanowienie się, co wystarczy.źródło
źródło