Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [MySQL]MySql - typ danych na liczby z przecinkiem

Napisany przez: pompio 25.03.2018, 15:14:39

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?


Napisany przez: viking 25.03.2018, 15:35:24

Wpisz z kropką.

Napisany przez: pompio 25.03.2018, 17:00:46

Cytat(viking @ 25.03.2018, 16:35:24 ) *
Wpisz z kropką.


Przepraszam, i to jest rozwiązanie problemu?
Przecież można w jakiś sposób wpisywać z przecinkiem liczby.
Ja planuję te dane przenosić do Excela potem, więc raczej muszą być z przecinkiem.

Napisany przez: SmokAnalog 25.03.2018, 17:18:41

Tak, to jest rozwiązanie problemu smile.gif 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.

Napisany przez: Pyton_000 25.03.2018, 17:36:28

I kolejna kwestia jakiej precyzji masz double.

Napisany przez: SmokAnalog 25.03.2018, 17:48:28

Skoro nie ma podanych w nawiasie długości, to standardowo 8 bajtów.

Napisany przez: pompio 25.03.2018, 17:57:18

Cytat(SmokAnalog @ 25.03.2018, 18:18:41 ) *
Tak, to jest rozwiązanie problemu smile.gif 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.

Dziękuję za cierpliwość i wyjaśnienie. ;-)
Trochę lipnie sie wpisuje dane, gdy trzeba wpisać kropkę, zamiast przecinka który jest przy klawiaturze numerycznej.
A jak zatem wpisuje się tysiące i wyżej?
1234.45
czy
1 234.45

Napisany przez: SmokAnalog 25.03.2018, 18:36:52

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.

Napisany przez: pompio 25.03.2018, 18:40:57

Cytat(SmokAnalog @ 25.03.2018, 19:36:52 ) *
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.

A to już chyba wyższa szkoła jazdy. ;-)
Jak dokonać takiej konwersji?
Mam trochę tych danych do wklepania i wiadomo, że imm wygodniej tym szybciej. ;-)
Może znasz jakieś sensowne poradniki w sieci?

Napisany przez: SmokAnalog 25.03.2018, 18:43:56

Ale chodzi o stworzenie narzędzie do wrzucania co jakiś czas czy masz po prostu teraz trochę rekordów do wrzucenia jednorazowo?

Napisany przez: pompio 25.03.2018, 19:27:02

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.

Napisany przez: SmokAnalog 25.03.2018, 23:02:53

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)