TEXT in Zahl umwandeln

  • Tach !

    Ich hab in MySQL eine Procedur erstellt in der ein Wert anhand von
    3 Überparametern errechnet wird. Aufgerufen wird diese in einem Insert
    bzw Update-Trigger.

    Jetzt ist das Feld in der Datenbank ein VARCHAR, eingegeben werden
    kann eine Kommazahl. Zum rechnen benötige is jetzt also den Typ
    Decimal (oder Double).

    Wie kann ich die Zahl "umwandeln" ? Einfach ne Variable erstellen vom
    Zahlentyp und dann dort den Text zuweisen geht nicht. Und die Hilfe
    sagt nur was von Conv, welches in nem SQL-Statement funktioniert,
    aber scheinbar nicht freistehen in ner Procedur.

    Jemand ne Idee ?

    *thx*

  • Eigentlich castet MySQL Strings automatisch um, wenn sie in einer Berechnung verwendet werden:
    SELECT 1.1 + '1.1'
    -> 2.2

    Aber warum nimmst du ein VARCHAR-Feld, wenn da Zahlen drinstehen mit denen auch gerechnet werden muss?

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Ich hab aber leider in der Prozedur keine Select-Anweisung.

    Der Feldtyp wird von der Anwendung der Datenbank (bugzilla) festgelegt, nicht von mir.
    Da gibts nur Zahlen (INT) und Text - und ne kommazahl als INT geht ja net :|

  • In Procedures wird das nicht automatisch umgecastet? Ich habe es selber noch nicht ausprobiert, wundert mich aber etwas, ich kann nicht ganz nachvollziehen wieso sich SQL da anders Verhalten sollte. Dieses Verhalten hat ja nichts explizit mit SELECT zu tun.
    Aber gut, wenn du es ausprobiert hast wird es wohl stimmen. ^^

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook