Merkwürdiges Ergebnis
bearbeitet von
Hallo und guten Morgen,
> > Na, dann mach es so:
> >
> > ~~~sql
> > select cast(replace('2,77', ',','.') as Decimal(10,2)) as preis;
> > -> 2.77
> > ~~~
> > Umsetzen auf deine Aufgabe kannst Du das jetzt aber? Den daran, es müssen BEIDE Seiten gecastet werden, weil aus dem HTML-Formular ja auch das falsche Format kommt.
>
> danke dir.
>
> ~~~php
> WHERE cast(replace(preis, ',','.') as Decimal(10,2)) <=? ORDER by preis DESC
> ~~~
>
> Warum muss ich es auf beiden Seiten machen? Wenn ich die Zeile Code ausführe erhalte ich genau das was ich benötige.
Weil nachher die Zahlen wieder aus einem HTML-Formular kommen. Die sind dann doch genauso kaputt, wie die in der Datenbank. Oder macht Ihr nur Abfragen mit dem phpMyAdmin?
> Was ich noch nicht verstehe ich das (10,2) auf der Seite https://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast steht zwar DECIMAL[(M[,D])] es wird aber nicht genuaer erklärt was M und D sein soll.
Mantisse und Decimals, also Vorkommazahl und Nachkommastellen. Bzw, bedeutet M hier mMn die Gesamtlänge der Zahl in Digits, also inclusive der Nachkommastellen.
Grüße
TS