首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql日期类型字段中插入空值?

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

Stack Overflow用户
提问于 2009-07-16 13:37:02
回答 3查看 93.2K关注 0票数 20

如何在mysql日期类型字段中插入空值(NULL = yes)。

如果我尝试插入一个空值,它将插入0000-00-00,但我希望将其保持为空或空。

谢谢你帮忙。

更新

请确保我已将默认值设置为NULL。

代码语言:javascript
复制
  `payment_due_on` date DEFAULT NULL,

好的,OKies

我已经让它起作用了

代码语言:javascript
复制
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'])." ...."

干杯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-16 13:38:47

如果发生这种情况,那是因为列是用NOT NULL或default '0000-00-00'定义的。您需要更改列定义以允许NULL,并且没有默认设置。

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

票数 25
EN

Stack Overflow用户

发布于 2010-02-04 03:45:54

哎呀..。一直在和这个虚无的东西做斗争。

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

最后,我发现这是因为我把单引号放在NULL ('NULL')周围。

代码语言:javascript
复制
$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) ."', ";
    }

这个修好了。

票数 2
EN

Stack Overflow用户

发布于 2009-07-16 14:01:12

只需在执行插入时省略该字段即可。

假设你的桌子是这样的:

代码语言:javascript
复制
CREATE TABLE mytable(
`name` VARCHAR(30) NOT NULL,
`payment_due_on` date DEFAULT NULL);

如果要插入没有日期的内容,请使用:

代码语言:javascript
复制
INSERT INTO mytable (name) VALUES ('name here');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1137655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档