![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: bde
SQL Problem beim auflösen eines Datums im SQL
Hallo zusammen,
ich habe folgendes Problem. Ich möchte ein Datum Formatieren. Der SQl:
SQL-Code:
Diese Ergebnis liefert folgendes:
select ID, Datum_1,
case when Datum_1 < '01.01.1900' then '...' else Datum_1 end from Daten1 order by Datum_1 ID, Datum_1 , Case 1 , 31.12.1899, ... 2 , 31.12.1899, ... 3 , 31.12.1899, ... 4 , 03.01.1999, 3-JAN-1999 <---- Formatierung sollte so sein wie in Datum_1 Hat da jemand nen Vorschlag? Vielen Dank! Gruß, Eppos |
Re: SQL Problem beim auflösen eines Datums im SQL
Was für ein wert wird im 1.Fall geliefert (Typ)? Vielleicht hilft ein CAST
|
Re: SQL Problem beim auflösen eines Datums im SQL
Sofern das nicht wieder nur die BDE ist (wenn ichs nicht sage tuts gleich ein anderer :lol:) : Guck dir mit einem anständigen Admin-Tool zuerst mal die Tabellendefinition an. Also die beiden Felder da. Probiere das auch mal mit Oktober oder December. Würde mich nicht wundern, wenn dann OCT oder DEC zu sehen wäre. Irgendwo ist eine Formateinstellung falsch. Tsts Firebird mit BDE. :mrgreen:
|
Re: SQL Problem beim auflösen eines Datums im SQL
Hi,
ich kann nur folgende Lösung vorschlagen:
SQL-Code:
Cu, Frank
select ID, Datum_1,
case when Datum_1 < '01.01.1900' then '...' else substring(Datum_1 from 9 for 2)||'.'|| substring(Datum_1 from 6 for 2)||'.'|| substring(Datum_1 from 1 for 4) end from Daten1 order by Datum_1 [EDIT]OK, ist Quatsch - bei mir ist das Datum im Format JJJJ-MM-TT |
Re: SQL Problem beim auflösen eines Datums im SQL
@dataspider
Danke für deinen Vorschlag, das funktioniert nicht. |
Re: SQL Problem beim auflösen eines Datums im SQL
Zitat:
Ergebnis im selben Format vorliegen soll ? :gruebel: Ist an der Theorie was dran, dann müsste das hier funktionieren : [quote="Eppos"]case when Datum_1 < '01.01.1900' then '...' else when Datum_1 >= '01.01.1900' then '...' end[/sql] Syntax ist als Pseudocode zu verstehen. |
Re: SQL Problem beim auflösen eines Datums im SQL
Firebird castet in deinem Beispiel das Datum in ein Char oder VarChar.
Würdest du statt '...' null nehmen, sollte das Format richtig sein. Bei Dialect 1 ist das Format beim Casten von Date auf Char leider so wie oben (DD-MMM-CCYY). Bei Dialect 3 ist das Format CCYY-MM-DD. Ich würde jetzt wahrscheinlich eine SP schreiben, welche mit Extract die einzelnen Werte aus dem Datum extrahiert und dann wieder zusammensetzt. Cu, Frank |
Re: SQL Problem beim auflösen eines Datums im SQL
Vielleicht so...
SQL-Code:
Gruss
SELECT id, datum_1,
CASE WHEN datum_1 < '01.01.1900' THEN '...' ELSE EXTRACT(DAY FROM datum_1) || '.' || EXTRACT(MONTH FROM datum_1) || '.' || EXTRACT(YEAR FROM datum_1) END datum FROM daten1 ORDER BY datum_1 Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 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