Veröffentlicht 7. Mai 200817 j Zuerst mal folgendes, ich hab 2 Date-Spalten, ich möchte jetzt die differenz der beiden datum angezeigt bekommen, also in spalte1 steht 11.05.2008 und in spalte2 steht 14.05.2008, also result will ich dann 3Tage haben, also 3 So jetzt wollt ich mir des mal ausgeben lassen mit: SELECT (t1.datum2 - t1.datum1) as Differenz FROM tabelle1 t1 Des geht aber net, da kommt "invalid number". Wie kann ich mir des noch ausgeben lassen oder müsst ich mir dann erst ne number-spalte anlegen und das ergebnis der differenz da reinschreiben? Und dann die 2 komplexere Frage, ich habe Zeitangaben in form von 21D (21 Tage) 3M (3 Monate) 23H ( 23 Stunden) Ich möchte dann in einer spalte nur noch zahlen stehen haben die die stunden angeben, also bei den einträgen mit H müsste nur das H abgeschnitten werden, bei D müsste man *24 rechnen etc. Wie geht des am geschicktesten? Also irgendwie mit regulären ausdrücken oder? Aber ich komm da net weiter, weil ich müsste ja erst mal abfragen sowas wie where spalte like '%D%' und dann den substring nehmen, damit ich nur die 21 hab und dann mal 24 nehmen, wie pack ich das alles in einen möglichst kompaktes statement?
7. Mai 200817 j TO_TIMESTAMP, TO_CHAR und konsorten könnten dir hier helfen. btw: scheinbar arbeitest häufig mit sehr "dirty workarounds" - DATE in NUMBER und wieder zurück in DATE. das ist grauselich.... ähm suboptimal. da du hier zuletzt ziemlich viele gleichartigen fragen postest, solltest du dir allenfalls grundlagen zu oracle zulegen; die o'reilly-bücher und OTN (oracle technet) sind gute ausgangsbasis. s'Amstel
7. Mai 200817 j Zuerst mal folgendes, ich hab 2 Date-Spalten, ich möchte jetzt die differenz der beiden datum angezeigt bekommen, also in spalte1 steht 11.05.2008 und in spalte2 steht 14.05.2008, also result will ich dann 3Tage haben, also 3 So jetzt wollt ich mir des mal ausgeben lassen mit: SELECT (t1.datum2 - t1.datum1) as Differenz FROM tabelle1 t1 Des geht aber net, da kommt "invalid number". Wie kann ich mir des noch ausgeben lassen oder müsst ich mir dann erst ne number-spalte anlegen und das ergebnis der differenz da reinschreiben? - Hmmm, bei mir geht es...Welches Format haben den deine "Date"-Spalten ?
8. Mai 200817 j Das Format is Date Geht bei mir... Guckst du : SQL*Plus: Release 10.2.0.2.0 - Production on Thu May 8 12:55:47 2008 Copyright (c) 1982, 2005, Oracle. All Rights Reserved. Enter password: Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL> CREATE TABLE testtable (ID NUMBER, datum DATE, datum_2 DATE) / Table created. SQL> INSERT INTO testtable VALUES (1, '01-JAN-2008', '04-JAN-2008') / 1 row created. SQL> SELECT (t.datum_2 - t.datum) AS differeenz FROM testtable t / DIFFEREENZ ---------- 3 SQL> Gruss
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.