sql >> データベース >  >> RDS >> Mysql

MySQLの日時フィールドにNULL値を保存する方法は?

    MySQLはします NULLを許可する datetimeの値 田畑。テストしました:

    mysql> create table datetimetest (testcolumn datetime null default null);
    Query OK, 0 rows affected (0.10 sec)
    
    mysql> insert into datetimetest (testcolumn) values (null);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from datetimetest;
    +------------+
    | testcolumn |
    +------------+
    | NULL       | 
    +------------+
    1 row in set (0.00 sec)
    

    私はこのバージョンを使用しています:

    mysql> select version();
    +-----------+
    | version() |
    +-----------+
    | 5.0.45    | 
    +-----------+
    1 row in set (0.03 sec)
    

    編集#1:PHPで表示されるエラーメッセージは、空の文字列(つまり、'')を渡していることを示していることが編集でわかりました。 )、nullではありません 。空の文字列はnullとは異なります 有効なdatetimeではありません そのエラーメッセージが表示されるのはそのためです。特別なSQLキーワードnullを渡す必要があります それがあなたの言いたいことなら。また、nullという単語を引用符で囲まないでください。 。私のinsertを参照してください nullを挿入する方法の例については、上記のステートメント 。

    編集#2:PDOを使用していますか?その場合、nullパラメータをバインドするときは、必ず[PDO::PARAM_NULL][1]を使用してください。 nullをバインドするときに入力します 。 これに対する回答を参照してくださいstackoverflowの質問 nullを正しく挿入する方法について PDOを使用します。



    1. 単一のクエリでの複数のselectステートメント

    2. Oracleを使用したJPAでの悲観的なロックが機能しない理由

    3. postgresで指数移動平均を計算する方法は?

    4. SQLite-関係を作成する