PDA

View Full Version : SQL Befehle unter strsql



MWendel
07-11-07, 08:23
Hallo,

ich habe in unseren Tabellen die Datum und Uhrzeiten folgendermassengspeichert.

Datum: yyyymmdd
Uhrzeit: hhmmss

oder komplett:
yyyymmddhhmmss

So nun ist es aber so das ich das im SQL gerne formatiert hätte wie auf einem MS SQL Server mit FORMAT usw...
Welchen Befehl gibt es da auf der AS/400, oder gibt es da etwa nichts?

Und bitte keine Antworten bezüglich RPG programmierung oder sonstige programmiersprache auf der AS/400, die kann ich nicht, eben nur SQL

thanks in advance

Martin Wendel

Fuerchau
07-11-07, 10:37
Einen Format-Befehl in SQL gibt es nicht, da dies Sache der Anwendung ist. SQL ist in diesem Sinne keine Anwendung.

Auch der MS-SQL-Server formatiert nur den Output (analog Query o.ä.).

Wenn du etwas "formatieren" willst, kannst du dies nur per zusammengesetzten Funktionen, z.B:

date(substr(digits(mydate), 1, 4) concat '-' concat substr(digits(mydate), 5, 2) concat '-' substr(digits(mydate), 7, 2))

Liefert ein Datum, dass im Jobformat formatiert wird.

Im embedded SQL bekommst du jedoch eine Variable vom Typ DATE und die Formatierung hängt eben von der gewählten Ausgabe ab (PRTF/DSPF/EXCPT/%EDITC/usw.).

MWendel
07-11-07, 11:50
Hi,

danke. Habs schon zusammenbekommen, aber nicht so schön wie ich es gerne hätte.

substr(
char(
timestamp(
char(
min(ssanda*1000000+ssanti)
)
)
), 0, 20)

da kommt sowas raus:
2007-11-07-06.43.40

wenn ich die einzeln zusammensetzte habe ich das Problem das ich keine 2stellige Zahl bekomme, sprich bei 06 Uhr
bekomme ich 6 und ich weis nicht wie ich das auf 2 stellen bringe, wenn ich kein datum davor habe :-(
Aber egal so gehts auch, für den User wird dennoch etwas einfacher ;-)

DAnke
Martin Wendel

Fuerchau
07-11-07, 12:00
char() wandelt linksbündig ohne Vornullen in Zeichen um.
digits() wandelt mit Vornullen in Zeichen um.