关于sql语句的to_date的用法问题

updatet_contentsettitle='zxcv',publishtime='ThuMay2000:00:00CST2010'whereid=1我在java里调... update t_content set title='zxcv',publishtime='Thu May 20 00:00:00 CST 2010' where id=1
我在java里调用执行时报错
我知道是后面publishtime输入时类型错误怎么修改?title为vchar2类型,publishtime为date类型
java.sql.SQLDataException: ORA-01858: 在要求输入数字处找到非数字字符

另外oracle中的date类型与java中的date类型不能通用的是么?我的publishtime那里输入的数据就是java程序传过来的date类型的
展开
 我来答
micro0369
2015-02-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4078万
展开全部

oracle吗?


你在java中把日期转换成  yyyy-mm-dd hh:mm:ss的格式后再 处理:

比如:

update t_content set title='zxcv',publishtime=to_date('2010-10-01 20:00:00','yyyy-mm-dd hh24:mi:ss')  where id=1
追问
那么,oracle中的date类型与java中的date类型的区别呢?
追答

给你copy 一段,你耐心看完:


在java对oracle的操作中,对日期字段操作的例子:
表 book 中有name varchar2(20),buydate Date 两个字段。
 
1、使用java.sql.Date实现比较简单的yyyy-mm-dd格式日期。java.sql.Date不支持时间格式。切记不要使用new java.sql.Date(int year,int month,int date),因为还要处理时间差问题。

PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
java.sql.Date buydate=java.sql.Date.valueOf("2005-06-08");
pstmt.setString(1, "Java编程思想");
pstmt.setDate(2,buydate );
pstmt.execute();


2、使用java.sql.Timestamp

PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
java.sql.Timestamp buydate=java.sql.Timestamp.valueOf("2004-06-08 05:33:99");
pstmt.setString(1, "Java编程思想");
pstmt.setTimestamp(2,buydate );
pstmt.execute();


3、使用oracle 的to_date内置函数

PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
String buydate="2004-06-08 05:33:99";
pstmt.setString(1, "Java编程思想");
pstmt.setString(2,buydate );
pstmt.execute();
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式