问题描述
- 时间为空值的设为0000-00-00怎么插入到数据库中
-
Java读取json数据到MySQL中,json中的regist_time为String ,数据库中的为Date,当regist_time为空时插入不到数据库,所有regist_time为空时,时间设为0000年00月00日,还是不对,
if(regist_time=="") regist_time="0000年00月00日";
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
Date date =format.parse(regist_time);
java.sql.Date sqlDate=new java.sql.Date(date.getTime());return sqlDate;
解决方案
0000-00-00时间格式
----------------------
解决方案二:
设置为null试试呢?另外你数据库里面的字段要是可以为空的才行。
在使用mysql时,有时候会遇到插入空日期的方法,比如col_date这个列属性是日期,可以为空(null),这时候如果我们想直接插入空日期,可以直接这么写:
insert into table table1 (col_date)values(null);
当然也可以更新空日期:
update table table1 set col_date = null where id = 1
解决方案三:
数据库字段为Date类型,非空,
解决方案四:
建表语句可以这样设置
regist_time
timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '注册时间',
解决方案五:
0000-00-00这个时间值没法存到数据库中,你的目的想标识一个无效时间,把字段设置为null是可行的,但会破坏代码中对时间值的处理
我建议你做一个静态的只读(或常量)时间对象,从数据库读回来的值与这个时间对象进行对比,
如果为true,表示一个无效时间,再输出视图格式字符串
解决方案六:
oracle 数据库中可以用nvl 语句 nvl(参数1,参数2) 如果参数1为空 就用参数2 代替他 插入数据库
时间: 2024-09-30 18:54:36