Anmelden

View Full Version : SQL Datum in Integer konvertieren



harkne
17-11-10, 07:53
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

Fuerchau
17-11-10, 07:58
Im prinzip nein, aber wie immer gibts mehrere Lösungen:

dec(replace(char(Datum, iso), '-', ''), 8, 0)

Vorraussetzung ist,

sim
17-11-10, 07:59
Wie wärs damit?

select int(replace(char(curdate()), '.', '')) from datei

B.Hauser
17-11-10, 08:15
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

sim
17-11-10, 08:19
Hallo Birgitta,

das ist natürlich richtig.
In einem Programm würde ich jedoch die SET OPTION der direkten
Konvertierung im SQL vorziehen.

sim

Fuerchau
17-11-10, 08:57
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.

harkne
17-11-10, 15:44
Vielen Dank für die Vorschläge