Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

INT(N) ZEROFILL in SELECT funktioniert nicht, mysql 5.1.43

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von HardboilW, 17 September 2013.

  1. HardboilW

    HardboilW Neuer Benutzer

    Hallo

    Bin ganz neu hier. Gesucht habe ich schon, nicht nur hier im Forum, bin aber nicht fündig geworden.

    Da mysql ver. 5.1.43 kein Millisekunden unterstützt, würde ich gerne folgenden Workaround implementieren:

    Tabelle TBL:
    |STORAGETIME | decimal(13,0) | NO | | NULL | |

    Die letzten 3 Stellen in STORAGTIME sind die Millisekunden.

    Mein fehlerhaftes SELECT sieht dann so aus (Syntaxfehler, nur sehe ich nicht wo):
    SELECT (STORAGETIME%1000) UNSIGNED INT(3) ZEROFILL FROM TBL;

    Aber folgendes SELECT funktioniert, nur sind dann die Werte ohne führende Nullen:
    SELECT (STORAGETIME%1000) FROM TBL;

    Frage: Kann man UNSIGNED INT(N) ZEROFILL in SELECT benutzen ohne an der Tabellendefinition herumzuschrauben?

    Danke,
    HardboilW
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Prinzipiell würde ich Dir raten, entweder eine MySQL-Inkarnation zu nutzen, die das kann, oder aber eine Datenbank, die das und mehr gleich richtig unterstützt.

    Die Ausgabe eines INT mit führenden Nullen ist lediglich eine Formsache - da kennt ganz sicher auch MySQL Möglichkeiten der Formatierung. Dein erster Versuch mit der Syntaxmeldung könntest Du vielleicht umschreiben als CAST, also Dein INT oder DECIMAL, was auch immer, in Dein 'UNSIGNED INT(3) ZEROFILL' mittels CAST umschreiben. Aber mit MySQL kenne ich micht nicht wirklich aus.
     
  3. BerndB

    BerndB Datenbank-Guru

    Hallo,

    mit den führenden 0 ist ganz einfach

    LPAD ist da das Mittel der Wahl

    select lpad(FIELD,9,'0') FROM TABLE;

    und schon haste was du möchtest

    Gruss

    BerndB
     
  4. HardboilW

    HardboilW Neuer Benutzer

    LDAP war das Mittel der Wahl, da ein Upgrade auf eine neuere/andere DB nicht möglich ist.

    Danke für die Inputs.

    Grüße,
    HardboilW
     
  5. akretschmer

    akretschmer Datenbank-Guru

    LPAD, nicht LDAP. Das ist wieder was anderes ...
     
  6. HardboilW

    HardboilW Neuer Benutzer

    War ein Tippfehler.

    LDAP ist mir sehr bekannt. LPAD war mir neu.
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden