ostpower Geschrieben 7. Mai 2008 Teilen Geschrieben 7. Mai 2008 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 7. Mai 2008 Teilen Geschrieben 7. Mai 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 7. Mai 2008 Teilen Geschrieben 7. Mai 2008 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 ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ostpower Geschrieben 8. Mai 2008 Autor Teilen Geschrieben 8. Mai 2008 Das Format is Date Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 8. Mai 2008 Teilen Geschrieben 8. Mai 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 8. Mai 2008 Teilen Geschrieben 8. Mai 2008 Wenn T-SQL { DATEDIFF (Transact-SQL) } sonst { Vorposter.Methode() } :> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.