异常:java.sql.SQLException: 从字符串向 datetime 转换时失败。
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeImpl(JtdsStatement.java:723)
at net.sourceforge.jtds.jdbc.JtdsStatement.execute(JtdsStatement.java:1157)
at com.mchange.v2.c3p0.impl.NewProxyStatement.execute(NewProxyStatement.java:1006)
源代码:
DateUtils dateUtil = new DateUtils();
String writeTime = dateUtil.getDate();//这个地方返回的是一个String类型,但是数据库里需要datetime类型 Date createTime = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
createTime = dateFormat.parse(writeTime);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("create time : " + writeTime);
StringBuffer sb2 = new StringBuffer("insert into xx.loginfo(userid,fullname,logtitle,logtext,createtime) values(");
sb2.append(userId).append( ",'" ).append("love','" ).append( title).append( "','").append(createTime).append("','").append( content).append("')");
String sql2 = sb2.toString();
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeImpl(JtdsStatement.java:723)
at net.sourceforge.jtds.jdbc.JtdsStatement.execute(JtdsStatement.java:1157)
at com.mchange.v2.c3p0.impl.NewProxyStatement.execute(NewProxyStatement.java:1006)
源代码:
DateUtils dateUtil = new DateUtils();
String writeTime = dateUtil.getDate();//这个地方返回的是一个String类型,但是数据库里需要datetime类型 Date createTime = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
createTime = dateFormat.parse(writeTime);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("create time : " + writeTime);
StringBuffer sb2 = new StringBuffer("insert into xx.loginfo(userid,fullname,logtitle,logtext,createtime) values(");
sb2.append(userId).append( ",'" ).append("love','" ).append( title).append( "','").append(createTime).append("','").append( content).append("')");
String sql2 = sb2.toString();
解决方案 »
- jsp applet运行问题
- 急~~~new一个实体对象时自增长的Id为0而不是Null.为什么?
- 网页在播放音频文件时,如何显示录音文件的时长
- JSP输入框乱码问题!!!!
- 想找个Java做的银行系统的项目学习学习,谁有代码啊?
- 关于JSP购物车里某商品的数量修改的问题
- 请问win2000server与unix做web服务器哪种安全性更高,在线等待。。。。
- 新手提问,在servlet中怎么能得到url中?后面的所有内容?
- 为什么不能下载服务器上的applet?????????????????????????
- 简单问题,希望大家帮忙!
- jsp连接myspl的简单问题
- jsp中主页面嵌套子页面的問題
String writeTime = dateUtil.getDate();//这个地方返回的是一个String类型,但是数据库里需要一个datetime类型,所以需要转换下
Date createTime = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
createTime = dateFormat.parse(writeTime);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("create time : " + writeTime);
StringBuffer sb2 = new StringBuffer("insert into xx.loginfo(userid,fullname,logtitle,logtext,createtime) values(");
sb2.append(userId).append( ",'" ).append("love','" ).append( title).append( "','").append(createTime).append("','").append( content).append("')");
String sql2 = sb2.toString();
String writeTime = dateUtil.getDate();
Date createTime = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
createTime = dateFormat.parse(writeTime);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("create time : " + writeTime);
StringBuffer sb2 = new StringBuffer("insert into xx.loginfo(userid,fullname,logtitle,logtext,createtime) values(");
sb2.append(userId).append( ",'" ).append("love','" ).append( title).append( "','").append(createTime).append("','").append( content).append("')");
String sql2 = sb2.toString();
本来想加个红色,怎么弄都不对
还是贴源码吧
这种格式的呢!
要是不符合那是转不了的!
两种解决方案:
1.使用PreparedStatement对象
2.这样拼接:append("love',to_date('").append(writeTime).append("','yyyy-mm-dd hh24:mi:ss'),")
public static String getDate(){
return getDate(new Date());
}
public static String getDate(Date time){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
log.info("DateUtils time dayOfMonth " + time.getDate() + " " + sd.format(time));
return sd.format(time);
}
}
数据库会自动做处理的
也不需要你做过多的处理!
我是这样做处理的
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
c = Calendar.getInstance(Locale.CHINESE);
String strDate=sdf.format(c.getTime());
strDate 就可以直接放在数据库里面去了..
就是想取系统时间然后用这个("yyyy-MM-dd HH:mm:ss");格式插入到数据库中
从字符串向 datetime 转换时失败。
因为数据库里的数据类型是datetime类型的,所以把String类型的时候插进去会出错。。
你换用 date 试哈字!
我记得以前用datetime 好象这样可以的
但是我现在做的一个项目就是用的 date 类型的
我用 string 写sql语句怎么就可以插进去啊?
String sql2 = sb2.toString();System.out.println(sql2);看看sql 语句
好象我的eclipse有问题
换String 写sql语句就没问题了。。