![]() |
Datenbank: ORACLE • Version: 10 • Zugriff über: BDE
SQL -> Spalten zu einer Datums/Zeit-Spalte zusammenführen
Hallo zusammen,
ich habe 6 Spalten. In Spalte eins ist der Tag, in Spalte zwei der Monat, in Spalte 3 das Jahr, in Spalte 4 die Stunden, in Spalte 5 die Minuten und in Spalte 6 die Sekunden. So habe ich diese Spalten zu einer Spalte bisher zusammengeführt:
Delphi-Quellcode:
Somit erhalte ich aber einen String-Wert. Wie kann ich diesen Wert nun innerhalb der SQL-Abfrage in einen DATETIME-Wert umwandeln ?
(SUBSTR(VAM.DEF14,7,2) || '.' || SUBSTR(VAM.DEF14,5,2) || '.' || SUBSTR(VAM.DEF14,1,4) || ' ' || SUBSTR(VAM.DEF14,9,2) || ':' || SUBSTR(VAM.DEF14,11,2) || ':' || SUBSTR(VAM.DEF14,13,2)) AS DATUM
Zusatz: Im Endeffekt ist es nur eine MEMO-Spalte, in der ein Datum mit Uhrzeit in dem Format vorliegt: 20071122210629 -> 22.11.2007 21:06:29 Vielleicht weiss ja auch jemand wie ich das direkt umwandeln kann in einen DATETIME-Wert Gruss Holger |
Re: SQL -> Spalten zu einer Datums/Zeit-Spalte zusammenfü
Also in Firebird heißt der Befehl CAST(XY AS DATE), aber wie man das in Oracle macht bin ich überfragt. Aber vielleicht hilft das Stichwort Cast ja beim Suchen ;)
|
Re: SQL -> Spalten zu einer Datums/Zeit-Spalte zusammenfü
In ORACLE nutze ich normalerweise TO_DATE, aber das geht bei dem vorliegenden FORMAT nicht.
|
Re: SQL -> Spalten zu einer Datums/Zeit-Spalte zusammenfü
Aber Du wirst doch das von Oracle erwartete Format eines Datums-Strings kennen (oder finden). Dann erzeuge doch einen solchen String (anstelle der obigen Version) und wende darauf TO_DATE an.
Bei MS-SQL gibt es CONVERT-Methoden, mit denen auch spezielle Formatierungen angegeben werden können. Vielleicht findest Du bei Oracle etwas Ähnliches. Gruß Jürgen |
Re: SQL -> Spalten zu einer Datums/Zeit-Spalte zusammenfü
Hallo,
guckst Du bitte hier: ![]() oder hier: ![]() Die bei der zweiten URL aufgelisteten Varianten für To_Date solltest Du per SQL generiert bekommen. |
Re: SQL -> Spalten zu einer Datums/Zeit-Spalte zusammenfü
Die oben aufgeführte Abfrage liefert ja das hier:
z.B.: 20.02.2009 12:18:45 Wenn ich darauf dann TO_DATE anwende kommt die Fehlermeldung: "Datumsformatstruktur endet vor Umwandlung der gesamten Eingabezeichenfolge". Ich denke da muss es noch einen anderen Befehl anstatt TO_DATE geben, um das komplette Datum mit Uhrzeit umzuwandeln ? Lösung übernommen aus nahpets link:
Delphi-Quellcode:
Gruss
TO_DATE(SUBSTR(VAM.DEF14,7,2) || '.' || SUBSTR(VAM.DEF14,5,2) || '.' || SUBSTR(VAM.DEF14,1,4) || ' ' || SUBSTR(VAM.DEF14,9,2) || ':' || SUBSTR(VAM.DEF14,11,2) || ':' || SUBSTR(VAM.DEF14,13,2),'dd.mm.yyyy,HH24:MI:SS') AS DATUM
Holger |
Re: SQL -> Spalten zu einer Datums/Zeit-Spalte zusammenfü
Hallo,
TO_Date erwartet einen String, d. h.: Du musst Dein Ergebnis noch in ' packen. Hoffe, dass ich das jetzt hier richtig hinschreibe:
SQL-Code:
TO_DATE(''''||SUBSTR(VAM.DEF14,7,2) || '.' || SUBSTR(VAM.DEF14,5,2) || '.' || SUBSTR(VAM.DEF14,1,4) || ' ' || SUBSTR(VAM.DEF14,9,2) || ':' || SUBSTR(VAM.DEF14,11,2) || ':' || SUBSTR(VAM.DEF14,13,2)||'''','dd.mm.yyyy,HH24:MI:SS') AS DATUM
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz