sql中datetime数据类型,java里怎么用字符串转成sql要的哪个类型?

freedomTTT 2008-02-05 11:23:19
在网上找了好久,不是方法过时,就是转的类型不匹配

String riqi=((ZiChanLeiBieGuanLi)jf).goumairiqi.getText();
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date day = null;
try {
day = df.parse(riqi);
} catch (ParseException ex1) {
}
PreparedStatement写的SQL语句内含有 ?
用setDate(1,day);
语法不给通过
...全文
379 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wentasy 2012-08-07
  • 打赏
  • 举报
回复
数据库中使用的是datetime,但是逆向后生成的却是TimeStamp,怎么解决?
老紫竹 2008-02-09
  • 打赏
  • 举报
回复
忘了提醒你了。
ODBC 不支持 setDate(); 哈哈哈
你换 JDBC 吧!!!
freedomTTT 2008-02-09
  • 打赏
  • 举报
回复
前面找到帖也是说这个异常的
他们说这个是桥接连数据库的原因....
freedomTTT 2008-02-08
  • 打赏
  • 举报
回复
s.setDate(5,new java.sql.Date(d.getTime()));

这句的问题
freedomTTT 2008-02-08
  • 打赏
  • 举报
回复
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterDate(JdbcOdbc.java:809)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setDate(JdbcOdbcPreparedStatement.java:824)
at project.XinXiXiouGaiJianTingQi.actionPerformed(XinXiXiouGaiJianTingQi.java:44)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
老紫竹 2008-02-07
  • 打赏
  • 举报
回复
如果你只是针对某个数据库,某个操作系统,并且语言也是固定的,那么用Statement也可以。
否则不行。即使你本地能用,传到其它操作系统上,就不能用了!
freedomTTT 2008-02-06
  • 打赏
  • 举报
回复
代码已经该了...现在用Statement写了!哎~~~
日期不能用Statement?
老紫竹 2008-02-06
  • 打赏
  • 举报
回复
方法有2种,第一种简单,但并不通用,因为不同系统的默认日期格式是不一样的。
推荐第二种

    PreparedStatement p = ...
String str = "2008-12-13";
// 方法1
p.setDate(1, java.sql.Date.valueOf(str));
// 方法2
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date d = null;
try {
d = df.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (d != null) {
p.setDate(1, new java.sql.Date(d.getTime()));
}
老紫竹 2008-02-06
  • 打赏
  • 举报
回复
日期必须用PreparedStatement.setDate来设置
没有执行可选特性

这个是啥?贴上来看看,至少是哪一句报这个错误?
freedomTTT 2008-02-06
  • 打赏
  • 举报
回复
用PreparedStatement 报了个没有执行可选特性,然后就用Statement写
程序是可以执行成功,但是日期和输入的不一样.......
s.executeUpdate("insert into gudingzichan(zichanName,zichanleibie,zichanxinghao,zichanmoney,zichanday,zichanzhuangtai,zichanshiyongzhe,beizhu) values('"+mingchen+"','"+leibie+"','"+xinghao+"',"+jiazhi+","+new java.sql.Date(d.getTime())+",'"+zhuangtai+"','"+shiyongzhe1+"','"+beizhu1+"')");

输2007-12-22 数据库里添加的1905-5-22  郁闷了
Godkill 2008-02-06
  • 打赏
  • 举报
回复
其实我建议是都用VARCHAR类型的。。这样传也好传
Godkill 2008-02-06
  • 打赏
  • 举报
回复
DateFormat df=DateFormat.getDateInstance();
多查查API。这些都有的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧