方法:
public List getOrderByName(String aname,Date starTime,Date endTime){
String hql="from OrderModel orders where orders.aname=? and orders.outTime between ? and ?";
Object[] obj=new Object[3];
obj[0]=aname;
obj[1]=starTime;
obj[2]=endTime;
return beanDAOImpl.getListByHql(hql, obj);
}但是运行的时候却报这个错:com.microsoft.sqlserver.jdbc.SQLServerException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 5 (""): 提供的值不是数据类型 datetime 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。这是什么原因?我用的是SSH结合框架。outTime 的类型的Date,但是数据库里的是datetime类型。

解决方案 »

  1.   

    这个问题是时间的精准度问题 --------解决(虽然不知道为什么 但是确实是解决了)dft.setTimeZone(TimeZone.getTimeZone("CST")); 日期转换时  我在simpleDateFormate对象中加入了这个定义
      

  2.   

    应该是getListByHql这个方法的原因,设定参数时它可能把Date当Timestamp了。你可能要将Date换成java.sql.Timestamp
      

  3.   

    我那个俩个Date类型的参数是字符串转换成Date的。如果用java.sql.Timestamp的话,能把字符串转换成Date类型吗?
      

  4.   

    Timestamp是从java.util.Date继承过来的,当然能转
      

  5.   

    你的问题解决了吗??我也遇到了。我是用是calendar进行转换的,年在1753以上都不报错,在1753以下都报错。
    能说说你的解决办法吗??
      

  6.   

    我刚刚查了资料,是sqlserver的问题.早知道就不问了
      

  7.   

    说错了,是datetime的问题