MYSQL - DATE mit leerem Wert

skippy3

Mitglied
Hallo,

ich habe in der Datenbank ein Feld vom Typ DATE. Wenn ich kein Datum eintrage ist der Wert immer 1970-01-01.

Wie kriege ich ein leeres Feld wenn kein Wert vorhanden ist?
Beispiel: Eintritt - Austritt
Eintritt ist bekannt
Austritt noch ohne Wert
 

Dunas

Erfahrenes Mitglied
Ich habe es gerade getestet.

SQL:
CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL auto_increment,
  `eintritt` date default NULL,
  `austritt` date default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci

Wenn ich jetzt was einfüge und dabei austritt mit NULL fülle, bleibt es auch NULL.
Schau mal nach ob du bei default was anderes stehen hast, oder du eigestellt hast dass das Feld nicht NULL sein darf
 
Zuletzt bearbeitet von einem Moderator:

Tekkion

Mitglied
bin mir jetzt nicht ganz sicher aber ich glaube nicht dass du NULL einfügen kannst. Immerhin ist die Variable vom typ date also kann da nur ein Datum drin stehen.
 

skippy3

Mitglied
bin mir jetzt nicht ganz sicher aber ich glaube nicht dass du NULL einfügen kannst. Immerhin ist die Variable vom typ date also kann da nur ein Datum drin stehen.

Das Feld vom Typ DATE hat Standard NULL, Allerdings bleibt das Feld nicht leer sondern wird immer mit 1970-01-01 gefüllt. Auch wenn ich den Wert lösche wird er immer wieder eingetragen.
 

Dunas

Erfahrenes Mitglied
Die Tabelle ist wie oben.

SQL:
INSERT INTO `ds_weltdaten`.`test` (
`id` ,
`eintritt` ,
`austritt`
)
VALUES (
NULL , CURDATE( ) , NULL
);
Unten seht ihr das Ergebniss.
Der MySQL Query Browser liefert genau das selbe Ergebniss. Bei mir ist die Spalte NULL geblieben

EDIT: Bei PHPMyAdmin habe ich auch eingestellt das die Spalte NULL sein kan.
 

Anhänge

  • abfrage_ergbeniss.jpg
    abfrage_ergbeniss.jpg
    13,2 KB · Aufrufe: 15
Zuletzt bearbeitet von einem Moderator:

skippy3

Mitglied
Die Tabelle ist wie oben.

SQL:
INSERT INTO `ds_weltdaten`.`test` (
`id` ,
`eintritt` ,
`austritt`
)
VALUES (
NULL , CURDATE( ) , NULL
);
Unten seht ihr das Ergebniss.
Der MySQL Query Browser liefert genau das selbe Ergebniss. Bei mir ist die Spalte NULL geblieben

EDIT: Bei PHPMyAdmin habe ich auch eingestellt das die Spalte NULL sein kan.

Ich habe mal einen Auszug aus meiner Datei angehängt. Bim eintragen ohne Wert oder löschen kriege ich immer 1970-01-01.
PHP:
    $query = '  INSERT INTO
                    `adressen`
                    (
                    `nummer`,
                    `eintritt`,
                    `austritt`,
                    )
                VALUES
                (
                "' .$nummer. '",
                "' .date( 'Y-m-d', strtotime( $eintritt ) ). '",
                "' .date( 'Y-m-d', strtotime( $austritt ) ). '",
                )';


    <form method="post" action="anlegen.php">

    <table>
      <tr>
       <td width="85">Nummer</td>
       <td width="120"><input type="text" name="nummer" value=""></td>
       <td width="30">&nbsp;</td>

       <td width="85">Eintritt</td>
       <td width="120"><input type="text" name="eintritt" value=""></td>
       <td width="30">&nbsp;</td>

       <td width="85">Austritt</td>
       <td width="120"><input type="text" name="austritt" value=""></td>
       <td width="30">&nbsp;</td>
      </tr>
    </table>
 
Zuletzt bearbeitet von einem Moderator:

Matze

Weltenwanderer
Ich glaube, dass geht gar nicht anders. Aber du kannst doch Abfragen, ob das Datum 1970-01-01 ist; wenn ja, dann soll es dein Programm als "unbekannt" oder eben "NULL" interpretieren.