Nie wiem, jaki jest najlepszy sposób na przechowywanie go - ale jest co najmniej lepsza opcja niż użycie varchar(39)
(lub varchar(40)
jeśli potrzebujesz podpisu); zamiast tego użyj decimal(39,0)
. Z dokumentów mysql :
Typy stałych punktów (dokładna wartość)
Typy DECIMAL i NUMERIC przechowują dokładne wartości danych liczbowych. Te typy są używane, gdy ważne jest zachowanie dokładności, na przykład w przypadku danych pieniężnych. W MySQL, NUMERIC jest zaimplementowany jako DECIMAL, więc poniższe uwagi o DECIMAL dotyczą w równym stopniu NUMERIC.
MySQL 5.1 przechowuje wartości DECIMAL w formacie binarnym. Przed MySQL 5.0.3 były one przechowywane jako ciągi znaków. Patrz rozdział 11.18, „Matematyka precyzyjna”.
W deklaracji kolumny DECIMAL można określić (i zazwyczaj jest) precyzję i skalę; na przykład:
salary DECIMAL(5,2)
W tym przykładzie 5 to precyzja, a 2 to skala. Precyzja reprezentuje liczbę cyfr znaczących, które są przechowywane dla wartości, a skala reprezentuje liczbę cyfr, które mogą być przechowywane po przecinku.
Standardowy SQL wymaga, aby DECIMAL (5,2) mógł przechowywać dowolną wartość z pięcioma cyframi i dwoma miejscami po przecinku, więc wartości, które mogą być przechowywane w przedziale kolumny wynagrodzenia od -999.99 do 999,99.
W standardowym języku SQL składnia DECIMAL (M) jest równoważna DECIMAL (M, 0). Podobnie, składnia DECIMAL jest równoważna DECIMAL (M, 0), gdzie implementacja może decydować o wartości M. MySQL obsługuje obie te warianty form DECIMAL. Domyślna wartość M wynosi 10.
Jeśli skala wynosi 0, wartości dziesiętne nie zawierają kropki dziesiętnej ani części ułamkowej.
Maksymalna liczba cyfr dla DECIMAL to 65, ale rzeczywisty zakres dla danej kolumny DECIMAL może być ograniczony precyzją lub skalą dla danej kolumny. Gdy takiej kolumnie zostanie przypisana wartość z większą liczbą cyfr po przecinku, niż jest to dozwolone przez określoną skalę, wartość jest konwertowana na tę skalę. (Precyzyjne zachowanie jest specyficzne dla systemu operacyjnego, ale ogólnie efektem jest obcięcie do dopuszczalnej liczby cyfr).