在java中是String型,在数据库中是date型,怎么传时间
我现在要把从页面过来的时间插入数据库,而且createtime即要时间又要日期。就是格式设置不好:下面是用哪个好呢:1.insertintochecking(id,cre...
我现在要把从页面过来的时间插入数据库,而且createtime即要时间又要日期。
就是格式设置不好:
下面是用哪个好呢:
1.insert into checking(id,createtime) values(?,to_date(?,'yyyy-mm-dd hh24:mi:ss'))";
2.insert into checking(id,createtime) values(?,?);
ps.setString(5, "to_date('"+cdto.getCreatetime()+"','yyyy-mm-dd hh24:mi:ss')");
我试了都没成功,第一个报数字型的引入了非数字型错误;第二个报ORA-01841: (full) year must be between -4713 and +9999, and not be 0 错误。
这些都是在DAO层的 展开
就是格式设置不好:
下面是用哪个好呢:
1.insert into checking(id,createtime) values(?,to_date(?,'yyyy-mm-dd hh24:mi:ss'))";
2.insert into checking(id,createtime) values(?,?);
ps.setString(5, "to_date('"+cdto.getCreatetime()+"','yyyy-mm-dd hh24:mi:ss')");
我试了都没成功,第一个报数字型的引入了非数字型错误;第二个报ORA-01841: (full) year must be between -4713 and +9999, and not be 0 错误。
这些都是在DAO层的 展开
5个回答
展开全部
说了一堆,最关键的两个信息不交代清楚;
用的什么数据库?createtime 字段是什么格式的?
举个例子给你吧,mysql的 datetime字段
有表:
CREATE TABLE `u_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nickname` varchar(32) DEFAULT NULL,
`addtime` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入的话
INSERT INTO u_user (nickname,ADDTIME) VALUES('小明','2017-09-29 08:59:59');
INSERT INTO u_user (nickname,ADDTIME) VALUES('小军','20170930');
这样写都可以 的插入。
可以查到资料:
MySQL 以:
‘YYYY-MM-DD HH:MM:SS’
格式检索与显示 DATETIME 类型。支持的范围是:
‘1000-01-01 00:00:00’
到
‘9999-12-31 23:59:59’。
你要是用的别的数据库,或字段,就根据这个思路建个表,试试吧。
用的什么数据库?createtime 字段是什么格式的?
举个例子给你吧,mysql的 datetime字段
有表:
CREATE TABLE `u_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nickname` varchar(32) DEFAULT NULL,
`addtime` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入的话
INSERT INTO u_user (nickname,ADDTIME) VALUES('小明','2017-09-29 08:59:59');
INSERT INTO u_user (nickname,ADDTIME) VALUES('小军','20170930');
这样写都可以 的插入。
可以查到资料:
MySQL 以:
‘YYYY-MM-DD HH:MM:SS’
格式检索与显示 DATETIME 类型。支持的范围是:
‘1000-01-01 00:00:00’
到
‘9999-12-31 23:59:59’。
你要是用的别的数据库,或字段,就根据这个思路建个表,试试吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
俩种应该是一样效果,
第一种直接传一个字符串类型的的时间,数字个数应该与后面格式化的个数一致吧(这个没验证)
:你格式化时‘yyyy-mm-dd hh24:mi:ss’ , 那传入的字符串应该是这种形式的:"2010-11-03 18:46:30",其它格式可能就会报错。
这时候是setString
第二种应该是setDate,这时候应该不能传字符串类型的吧
第一种直接传一个字符串类型的的时间,数字个数应该与后面格式化的个数一致吧(这个没验证)
:你格式化时‘yyyy-mm-dd hh24:mi:ss’ , 那传入的字符串应该是这种形式的:"2010-11-03 18:46:30",其它格式可能就会报错。
这时候是setString
第二种应该是setDate,这时候应该不能传字符串类型的吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看这样行不行
ps.setDate(5, new java.sql.Date(cdto.getCreatetime()));
ps.setDate(5, new java.sql.Date(cdto.getCreatetime()));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into checking(id,createtime) values(?,to_date(?,'yyyy-mm-dd hh24:mi:ss'))";
第一个?应变为类似"Integer.Parse(?)"功能的函数
第一个?应变为类似"Integer.Parse(?)"功能的函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么不用setDate呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询