如何在mysql日期类型字段中插入空值(NULL = yes)。
如果我尝试插入一个空值,它将插入0000-00-00,但我希望将其保持为空或空。
谢谢你帮忙。
更新
请确保我已将默认值设置为NULL。
`payment_due_on` date DEFAULT NULL,好的,OKies
我已经让它起作用了
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'])." ...."干杯
发布于 2009-07-16 13:38:47
如果发生这种情况,那是因为列是用NOT NULL或default '0000-00-00'定义的。您需要更改列定义以允许NULL,并且没有默认设置。
您的插入也应该指定NULL,而不是'',如果这就是“空值”的意思。
发布于 2010-02-04 03:45:54
哎呀..。一直在和这个虚无的东西做斗争。
我有一个php脚本,它将数据从一个数据库A复制、格式化和存储到数据库B。数据库A中有一个带有空值的日期字段。但是当我复制它时,它在我的数据库B中变成了0000-00-00。
最后,我发现这是因为我把单引号放在NULL ('NULL')周围。
$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) ."', ";
}这个修好了。
发布于 2009-07-16 14:01:12
只需在执行插入时省略该字段即可。
假设你的桌子是这样的:
CREATE TABLE mytable(
`name` VARCHAR(30) NOT NULL,
`payment_due_on` date DEFAULT NULL);如果要插入没有日期的内容,请使用:
INSERT INTO mytable (name) VALUES ('name here');https://stackoverflow.com/questions/1137655
复制相似问题