代码之家  ›  专栏  ›  技术社区  ›  TigerTiger

如何在mysql日期类型字段中插入空值?

  •  20
  • TigerTiger  · 技术社区  · 17 年前

    更新

    请查看我已将默认值设置为NULL

      `payment_due_on` date DEFAULT NULL,
    

    好的好的

    function get_mysqlDate($date, $delimiter='/') {
        if(check_empty($date)) {
            return 'NULL';
        }
        list($d, $m, $y) = explode($delimiter, $date);
        //$datetime = strtotime($date);
        return "'".date('Y-m-d', mktime(0,0,0,$m, $d, $y))."'";
    }
    
    
    
    
    "... SET mydate = ".get_mysqldate($_POST['mydate'])." ...."
    

    3 回复  |  直到 17 年前
        1
  •  19
  •   chaos    17 年前

    NOT NULL default '0000-00-00' NULL

    您的插入也应指定NULL,而不是 '' ,如果这就是你所说的“空值”的意思。

        2
  •  2
  •   Vicer    16 年前

    呼。.有点纠结于这个虚无的东西。

    我有一个php脚本,可以将数据从一个数据库a复制、格式化和存储到数据库B。数据库a中有一个日期字段,其值为NULL。但当我复制它时,它在我的数据库B中变成了0000-00-00。

    $started_date = mysql_result($databaseA['result'],$i,"start_date");
    
        if (empty($published_at_date)){
         $insert_sql .= "NULL,  ";
        } 
        else 
        {
         $insert_sql .= " '" . mysql_real_escape_string($started_date) ."', ";
        }
    

    这解决了它。

        3
  •  0
  •   Michal Gorecki    17 年前

    插入时只需省略该字段。

    CREATE TABLE mytable(
    `name` VARCHAR(30) NOT NULL,
    `payment_due_on` date DEFAULT NULL);
    

    如果要插入不带日期的内容,请使用:

    INSERT INTO mytable (name) VALUES ('name here');