java里的什么数据类型可以传到SQLServer数据库里进行时间比较?

gorges 2003-12-08 11:09:11
PreparedStatement ps=conn.prepareStatement("select * from tableA where CONSUMEDATE>?");
ps.setTimestamp(1,startDate);
ps.executeQuery();

DATE和TIMESTAMP都不行,提示:
The specified date cannot be represented by a SQL Server datetime
有人知道怎么解决吗?
...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gorges 2003-12-10
  • 打赏
  • 举报
回复
转义语法格式在sqlserver里没有问题,但是在PreparedStatement中就会提示:Invalid token,还是不能把java里的日期传到sqlserver比较。我用的是微软的jdbc,支持应该还是比较好的
改写后的语句如下:
ps=conn.prepareStatement(select * from tableA where CONSUMEDATE>{d ?});
gorges 2003-12-09
  • 打赏
  • 举报
回复
把语句改成了:
ps=conn.prepareStatement(select * from tableA where CONSUMEDATE>CAST(? as datetime));
ps.setString(1,"1992-12-12");
运行时报错:
Ivalide parameter binding.
怎么才能绑定上去啊?
sevenfish 2003-12-09
  • 打赏
  • 举报
回复
要用转义语法。如yyyy-mm-dd格式,在select语句后加{d 'yyyy-mm-dd'}
gorges 2003-12-08
  • 打赏
  • 举报
回复
SQLServer里怎样把yyyy-mm-dd格式的字符串转换成日期,SQLServer比较水的说
SwordsmanF 2003-12-08
  • 打赏
  • 举报
回复
你就用String放到sql语句里去吧

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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