MySQL 5默认日期为空,无法插入日期= ''为什么?

标签 mysql date asp-classic

我创建了下表,并将日期设置为 DEFAULT NULL。但是当我尝试将空字符串插入表中时。我会得到一个错误。处理空字段以插入日期的最佳方法是什么?

CREATE TABLE `testing` (
  `AUTOINC` double NOT NULL AUTO_INCREMENT,
  `TST` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 
 CURRENT_TIMESTAMP,
  `EMP_CODE` varchar(10) NOT NULL DEFAULT '',
  `DT_JOIN` date DEFAULT NULL,
  `DT_CONFIRM` date DEFAULT NULL,
  `DT_RESIGN` date DEFAULT NULL,
  `USER_ID` varchar(6) NOT NULL DEFAULT '',
  `DATETIME` datetime DEFAULT NULL,
  PRIMARY KEY (`AUTOINC`)
 ) ENGINE=MyISAM AUTO_INCREMENT=126 DEFAULT CHARSET=utf8;


insert into TMEMPLY (EMP_CODE,DT_JOIN,DT_CONFIRM,DT_RESIGN,USER_ID,DATETIME)
values ('TEST','2017-09-19','','','BRO','2017-09-19 14:47:21')

错误

Incorrect date value: '' for column 'DT_CONFIRM'

如何处理日期的空字段。例如,如果用户未输入表单中的日期并保留空白字段。最好的方法是什么?

最佳答案

问题是,datetime 列接受有效日期或 null 值。因此,不要在此处传递 ''(空白),而应在此处传递 null,因为您已经知道 '' 不等于 null。所以查询类似于:

insert into TMEMPLY (EMP_CODE,DT_JOIN,DT_CONFIRM,DT_RESIGN,USER_ID,DATETIME)
values ('TEST','2017-09-19', null, null,'BRO','2017-09-19 14:47:21')

关于MySQL 5默认日期为空,无法插入日期= ''为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46293765/

相关文章:

java - Spring - 使用 CriteriaQuery (规范)的 OrderBy 关系属性会忽略没有关系的行

php - 为什么这个 sql 问题不起作用(phpmyadmin)

mysql - 如何根据给定的记录集获取最后 5 或 6 条记录

python - 使用Python的xlrd模块查找日期最多的列

javascript - Moment.js格式差异

asp-classic - 经典 ASP : Capture Errors

mysql - 为什么MYSQL在REPEATABLE READ下仍然返回未提交的记录?

java - 毫秒至今 C++

c# - 如何转义经典 ASP 中的字符串以用于 XPath 查询?

soap - 使用经典 ASP 发送 'application/soap+xml' SOAP 请求