Witam,
Jestem całkowicie początkujący w Mysql.
Nie potrafię zrozumieć pewnej rzeczy.
W tabeli są kolumny:
id_prac - int(11)
data - date
wydajnosc - double
Nie mogę wpisywać wartości z przecinkami do ostatniej kolumny.
Po zapodaniu komendy np.:
insert into pracownicy.wydajnosc values ('1','2018-01-02','156,37');
dostaję komunikat:
SQL Error [1265] [01000]: Data truncated for column 'wydajnosc' at row 1
SQL Error [1265] [01000]: Data truncated for column 'wydajnosc' at row 1
SQL Error [1265] [01000]: Data truncated for column 'wydajnosc' at row 1
SQL Error [1265] [01000]: Data truncated for column 'wydajnosc' at row 1
Data truncated for column 'wydajnosc' at row 1
Data truncated for column 'wydajnosc' at row 1
Gdy wpiszę wartosc w ostatniej kolumnie bez przecinka, np.'156', to bez problemu się wpisze.
Gdzie robię błąd?
Wpisz z kropką.
Tak, to jest rozwiązanie problemu Przecinek nie jest w żadnym znanym mi języku programowania separatorem części ułamkowej liczby. W Polsce używamy przecinka, ale np. w USA używa się kropki. Jeśli zaimportujesz z kropką do Excela, to Excel powinien sam Ci zamienić na przecinek. Taka sprytna bestia.
I kolejna kwestia jakiej precyzji masz double.
Skoro nie ma podanych w nawiasie długości, to standardowo 8 bajtów.
Bez żadnych ozdobników - tylko XXX.YY. To jest surowy format liczbowy. Jeśli korzystasz z jakiegoś własnego narzędzia do wrzucania tych danych, nic nie stoi na przeszkodzie, żebyś wpisywał jak lubisz i zrobił konwersję do formatu XXX.YY.
Ale chodzi o stworzenie narzędzie do wrzucania co jakiś czas czy masz po prostu teraz trochę rekordów do wrzucenia jednorazowo?
Mam trochę rekordów teraz do wrzucenia.
Dane za pierwszy kwartał dla 11 osób.
Tak wogóle, jak mi się to spodoba trochę się pouczę SQLa.
Jak to jednorazowa robota to zapisz sobie jak lubisz i w edytorze tekstu pozamieniaj wyrażeniami regularnymi.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)