Kann man bequem auf das 0-Datum prüfen?
Kann man bequem auf das 0-Datum prüfen?
am 31.01.2006 10:58:47 von Philipp Rieber
Hallo,
der Default-Wert von DATE oder DATETIME-Feldern ist ja "0000-00-00" bzw.
"0000-00-00 00:00:00". Lässt sich dies in SQL irgendwie eleganter
prüfen als mit IF(Datum = '0000-00-00', '-', Datum)?
Meine bisherige Lösung ist, für die betroffenen Felder NULL als Default
zu setzen und dann so abzufragen:
IF(ISNULL(Datum), '-', Datum)
Aber ich frage mich, wieso der 0-Datumswert als Default eingestellt ist,
da muss sich doch bequemer prüfen lassen, oder?
Bei dem Datumsfeld handelt es sich um ein optionales, was also vom
Benutzer nicht ausgefüllt werden muss und das muss man ja irgendwie
rausfinden ;-)
Viele Grüße,
Philipp
Re: Kann man bequem auf das 0-Datum prüfen?
am 31.01.2006 13:47:03 von Holger Pollmann
Philipp Rieber schrieb:
> Meine bisherige Lösung ist, für die betroffenen Felder NULL als
> Default zu setzen [...]
>
> Bei dem Datumsfeld handelt es sich um ein optionales, was also vom
> Benutzer nicht ausgefüllt werden muss und das muss man ja irgendwie
> rausfinden ;-)
Für genau sowas ist doch der NULL-Wert optimal: wenn gar nichts, nicht
einmal ein leeres bzw. Nullerdatum eingetragen wurde, dann wurde das Datum
offensichtlich nicht angegeben.
--
( ROT-13 if you want to email me directly: uvuc@ervzjrexre.qr )
"Sie tragen Trauer? Der Untergang der DDR?" - "Nein, Leni Riefenstahl. Der
Führer hat sie zu sich genommen." -- Abschiedsshow Scheibenwischer,
02.10.2003
Re: Kann man bequem auf das 0-Datum prüfen?
am 31.01.2006 15:33:18 von Philipp Rieber
Holger Pollmann schrieb:
> Für genau sowas ist doch der NULL-Wert optimal: wenn gar nichts, nicht
> einmal ein leeres bzw. Nullerdatum eingetragen wurde, dann wurde das Datum
> offensichtlich nicht angegeben.
Ja das stimmt. Ich bin ja auch ganz zufrieden mit der NULL-Lösung, frage
mich aber nur, was dieser Default-Wert soll, der ist ja völlig sinnlos.
Oder gibt es einen Grund?
Viele Grüße,
Philipp
Re: Kann man bequem auf das 0-Datum prüfen?
am 31.01.2006 15:49:34 von Holger Pollmann
Philipp Rieber schrieb:
>> Für genau sowas ist doch der NULL-Wert optimal: wenn gar nichts,
>> nicht einmal ein leeres bzw. Nullerdatum eingetragen wurde, dann
>> wurde das Datum offensichtlich nicht angegeben.
>
> Ja das stimmt. Ich bin ja auch ganz zufrieden mit der NULL-Lösung,
> frage mich aber nur, was dieser Default-Wert soll, der ist ja völlig
> sinnlos. Oder gibt es einen Grund?
Vermutlich wird ein Integer-Defaultwert von 0 für ein Datumsfeld einfach
in 0000-00-00 00:00:00 "übersetzt" - und 0 ist nun einmal der
Defaultwert, den MySQL einsetzt, wenn keiner angegeben wird.
--
( ROT-13 if you want to email me directly: uvuc@ervzjrexre.qr )
"Sie tragen Trauer? Der Untergang der DDR?" - "Nein, Leni Riefenstahl.
Der Führer hat sie zu sich genommen." -- Abschiedsshow Scheibenwischer,
02.10.2003
Re: Kann man bequem auf das 0-Datum prüfen?
am 01.02.2006 22:18:41 von Kai Ruhnau
Philipp Rieber wrote:
> IF(ISNULL(Datum), '-', Datum)
IFNULL(Datum,'-')
Grüße
Kai
--
This signature is left as an exercise for the reader.