Veröffentlicht 8. Oktober 200717 j hallo zusammen. ich bräuchte eure hilfe bei einer sql abfrage. ich bin auf einer i-series-maschine (oracle-db) unterwegs. mein ziel ist, einen string zu erzeugen, den ich aus vielen feldern einer datenbank mit concat (bzw. !!) zusammensetze. soweit, so gut. der string soll ungefähr so aussehen: 05136911000020307100117120221 um was es mir geht, ist speziell datum und zeit (01.10.07 17:12:02), den rest kann ich einwandfrei erzeugen. _______________071001171202__ in meiner tabelle gibt es u. a. 6 felder für datum (yy, mo, dd) und uhrzeit (hh, mi, ss), die ich eben zu diesem (teil-)string zusammensetzen muss. allerdings sind jetzt sowohl in der monatsspalte, als auch bei tag, stunde, minute, sekunde bei einstelligen werten (1, 2, 3, 4, ... 9) keine führende null dabei, die ich aber benötige. ich hätte bei der ganze sache jetzt spontan folgende syntax verwendet: IF(LENGTH(DD) = 1, CONCAT('0', DD), DD) allerdings meckert mein system und meint, das gleichheitszeichen (=) sei kein gültiger operator. jetzt steh ich da und weiß nicht weiter. hat von euch jemand einen blassen schimmer? danke und schöne grüße, trebstyle
8. Oktober 200717 j Hi, im allgemeinen sollte man ja für ein Datum auch ein DATE Feld verwenden. Für Dein Problem verwendest am besten DECODE Dim EDIT Vergiss DECODE. Formatiere den String direkt so wie Du ich brauchst: to_char(DD,'00')
8. Oktober 200717 j Autor naja, wem sagst du das... es ist einfach eine datenbank, auf die ein altes programm zugreift. deswegen ist eine änderung nicht drin. trotzdem danke! ich hab übrigens auch noch eine möglichkeit gefunden: right(digits(DD), 2) das thema kann also geschlossen werden!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.