Veröffentlicht 20. Dezember 201014 j Hallo FI Community, ich habe folgendes Problem: In einer Oracle Datenbank wird die Zeit als Unix Zeit in einem numerischen Feld dargestellt (Number,10) Bsp 1292493296 für 16.12.2010 10:54:56 Ich möchte einen select auf alle Daten die >= Vormonat sind einschränken. Leider konnte ich bisher nichts adequates finden und bitte daher um Hilfe. Besten Dank!
20. Dezember 201014 j Wäre es nicht sinnvoller ein Date als Typ zu verwenden und mit den Datumsfunktionen von Oracle zu arbeiten !?
20. Dezember 201014 j Die Datenbank ist ein Fremdproduckt. Ich muss das lediglich per Sql auswerten. Ich denke aber mittlerweile ein Lösung gefunden zu haben. Diese sieht wie folgt aus: select c_date(speicher_datum) from tracking where sysdate >( select trunc( add_months( max(to_char(sysdate)),- 2), 'mm' ) from tracking ) Bearbeitet 20. Dezember 201014 j von grummelbummel
20. Dezember 201014 j Hallo, schau mal dort. Konvertierung Unix Timestamp zu Oracle Date all-IT Erst nach Oracle Date umwandeln und dann stehen alle Oracle Funktionen zur Verfügung. Frank
20. Dezember 201014 j Hallo Frank, ich habe das mal auf meine Struktur hin angepasst: SELECT to_char(TO_DATE('Auftr_datum','YYYYMMDDHH24MISS') + NUMTODSINTERVAL(1094165422, 'SECOND'), 'dd.mm.yyyy hh24:mi') datum FROM auftrag Ich bekomme die Meldung zurück: ORA -01841 (Volles) Jahr muss zwischen -4713 und +9999 und darf nicht 0 sein. bzw ORA -01843 kein gültiger Monat Gruß Grummel Bearbeitet 20. Dezember 201014 j von grummelbummel
20. Dezember 201014 j Die Datenbank ist ein Fremdproduckt. Ich muss das lediglich per Sql auswerten. Ich denke aber mittlerweile ein Lösung gefunden zu haben. Diese sieht wie folgt aus: select c_date(speicher_datum) from tracking where sysdate >( select trunc( add_months( max(to_char(sysdate)),- 2), 'mm' ) from tracking ) Hallo Frank, ich habe das mal auf meine Struktur hin angepasst: SELECT to_char(TO_DATE('Auftr_datum','YYYYMMDDHH24MISS') + NUMTODSINTERVAL(1094165422, 'SECOND'), 'dd.mm.yyyy hh24:mi') datum FROM auftrag Ich bekomme die Meldung zurück: ORA -01841 (Volles) Jahr muss zwischen -4713 und +9999 und darf nicht 0 sein. bzw ORA -01843 kein gültiger Monat Gruß Grummel SELECT to_char(TO_DATE('19700101000000','YYYYMMDDHH24MISS') + NUMTODSINTERVAL(1094165422, 'SECOND'), 'dd.mm.yyyy hh24:mi') datum FROM auftrag Das funktioniert, danke!
20. Dezember 201014 j robotto meinte eigentlich das du die Variable Auftr_datum verwenden musst, nicht den string 'Auftr_datum'. oder hast du die unixtime da nur zur Veranschaulichung reingebaut? dann hab ich nix gesagt
20. Dezember 201014 j robotto meinte eigentlich das du die Variable Auftr_datum verwenden musst, nicht den string 'Auftr_datum'. oder hast du die unixtime da nur zur Veranschaulichung reingebaut? dann hab ich nix gesagt Danke, ist natürlich die Variable, nicht der String. Augen auf beim copy&paste . . .
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.