ORACLE: bedingte Formatirung to_char bei DATE Feld

  • Themenstarter Themenstarter rfriebel
  • Beginndatum Beginndatum
R

rfriebel

Hallo,

folgendes Problem. DATE Felder können sowohl ein Datum, eine Zeit oder beides speichern. Habe ich zum Beispiel nur ein Datum im Feld gespeichert, erhalte ich folgendes:

select to_char(MyDate, 'YYYYMMDDMISS' ) from MyTable

Ergebnis: '201004160000'

Genau die Nullen möchte ich aber nicht, wenn es sich nur um ein Datum handelt. Wie gesagt, es könnten aber auch manchmal Zeiten mit drin stehen, die möchte ich dann haben.
Und noch was: die Formatmaske ist von der Anwendung her konfiguriert. Ich kann also nicht testen und wenn der Wert MyDate nur ein Datum ist ein verkürzte Formatmaske verwenden.

Danke und Gruß
 
AFAIK speichert Oracle DATE Werte als Timestamp mit 0 Uhr.

Du könntest also

SQL:
select  case
                 when substr(to_char(MyDate, 'YYYYMMDDMISS' ) ,8,4) = '0000' then
                            (...)
                 else
                           (....)
             end 
from MyTable

machen
 
Zurück