View Full Version : SQL Datum in Integer konvertieren
Hallo zusammen,
kann mir jemand sagen wie ich ein Datum in eine numerischen Wert in SQL bekomme ?
So habe ich es hinbekommen ->
SELECT year(Datum) *10000
+ month(Datum)*100
+ day(Datum)
from Datei
aber geht das auch einfacher ?
Vielen Dank
Viele Grüße Harald
Im prinzip nein, aber wie immer gibts mehrere Lösungen:
dec(replace(char(Datum, iso), '-', ''), 8, 0)
Vorraussetzung ist,
Wie wärs damit?
select int(replace(char(curdate()), '.', '')) from datei
Wie wärs damit?
select int(replace(char(curdate()), '.', '')) from datei
Wird ein Datum mit CHAR konvertiert, sollte das Format, in dem das alphanumerische Datum aufbereitet werden soll angegeben werden (wie es Baldur gezeigt hat). Der Grund dafür liegt darin, dass basierend auf dem Datums-Format unterschiedliche Trennzeichen verwendet werden.
Wird CHAR ohne Angabe des Formats verwendet, wird das Format und das Trennzeichen, das in der aktuellen SQL-Sitzung (in embedded SQL wird das Datumsformat, das im Compile-Befehl bzw. SET OPTION Anweisung angegeben wurde) verwendet wird. ... und das ist nicht immer *EUR (TT.MM.JJJJ).
Birgitta
Hallo Birgitta,
das ist natürlich richtig.
In einem Programm würde ich jedoch die SET OPTION der direkten
Konvertierung im SQL vorziehen.
sim
Nicht überall steht SET OPTION zur Verfügung (QMQRY), deshalb sollte man sich auf sowas nicht verlassen.
Ich persönlich ziehe das ISO-Format an allen Stellen vor, da dieses sicherer ist. Zumal EUR TT.MM.JJJJ und nicht JJJJ-MM-TT liefert, was insbesonders als Zahl besser zu verarbeiten ist.
Für DSPF/PRTF oder andere Anzeigen kann man ja das EUR-Format dann gezielt einsetzen.
Vielen Dank für die Vorschläge