MYSQL: NULL =0 Oo

Gutentag zusammen,

wir setzen bei uns die auftragssoftware GS-Auftrag2008. diese kann laut hersteller nur unter windows genutzt werden. wir nutzen das ganze jedoch mit einen linux server...jedoch gibt es an eien gewissen punkt eine fheelr der auftrit weil die software ein abfrage auf NULL macht in der datenbank jedoch "0000-00-00" steht. das problem ist das es mit dne von sage mitgelieferten mysql server geht. daher vermute ich das sich das ganze ihrgnedwo in der my.cnf einstellen läst jedoch hab ich auch nach langen googlen nicht gefunden. daher frag ich mal hier ob das schoneinmal wer hatte. es ist zwar nicht sauber programiert von dennen jedoch kann ich dadran ncihts ändern deswegen muss der weg über die änderung am server wählen.
 
zelle bzw feld hat den typ "date" ->NULL == 0000-00-00
 
Hallo,
oder mal per phpMyAdmin o.ä. schauen, ob für das Feld das Attribut 'NOT NULL' gesetzt ist.

Wenn ja: Entferne dieses.
 
chakky das das feld type date hat ist klar trotzdem sit NULL und 0000-00-00 etwas anderes, und deshalb schlägt auch die where abfrage richtiger weise fehl. jeodhc gitbs ja ihrgnedn nen weg das zu umgehen.

ja null ist für das feld aktiv jeodch hilft das alles nicht das problem zu lösen. ich kann es zwar von hand auf NULL setzen udn dan läuft das program auch aber das ist ja nicht sin der sache das der admin jeden tag die datenbank anrühren muss.
 
Also mal davon abgesehen daß das ein sehr merkwürdiges Problem ist, weil ich mir nur sehr schlecht vorstellen kann daß man MySql ein Null als eine 0 vorspielen kann könntest du das Problem evtl. mit einem Trigger lösen. Sprich wenn ein Insert gemacht wird überprüfst ob du ob in die Datumsspalte eine 0 eingetragen werden soll und ersetzt diese durch ein Null sofern das die ganze Logik nicht durcheinander bringt. Eine 0 in der Datumsspalte sollte aber keinen Sinn ergeben. Google einfach mal nach MySql Trigger und sei kreativ :-)

Gruß odigo
 
wahrscheinlich baut das App auf sowas auf
Note that the built-in default values for the DATE and DATEFIELD column types is out of range. For example, 0000-00-00 is a valid way of expressing NULL, but if the column is set as NOT NULL, 0000-00-00 is still the default value. This can cause problems with some applications using MySQL.
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

Werden vielleicht irgendwo automatisch Defaultwerte für Datentypen gesetzt?
Kannst Du die Tabellen neu anlegen mit:
Code:
CREATE TABLE products (
    product_no integer PRIMARY KEY,
    name text,
    mydate DEFAULT NULL
);
?
Eventuell gibt es auch eine Configeinstellung dafür. Abgesehen davon: es gibt auch eine "silent" Konvertierung von ungültigen Daten in 0000-000:
http://dev.mysql.com/tech-resources/articles/mysql-data-integrity.html
 
standard wert ist auch NULL die software scheint aber beim erstellen 0000-00-00 reinzu schreiben

das mit den trigger werd ich mir mal angucken.

das es einen konvig eintrag gibt vermute ich auch sehr stark nur find ich nix.
 
Zurück
Oben