您好,欢迎访问一九零五行业门户网

java与sqlserver08日期类型转换问题

我3次调用查询语句,出现3次错误, 1、date不能隐式 转换 为binary,(查询时) 2、varbinary不能转为date 3、 从字符串 转换 日期 和/或时间时, 转换 失败。 (查询时) 分享一些很好的文章: http://zhidao.baidu.com/link?url=t-7cahd5z0fqnge5fymiezsug
我3次调用查询语句,出现3次错误,
1、date不能隐式转换为binary,(查询时)
2、varbinary不能转为date
3、
从字符串转换日期和/或时间时,转换失败。
(查询时)分享一些很好的文章:
http://zhidao.baidu.com/link?url=t-7cahd5z0fqnge5fymiezsugmcu0zu4mit-gpzj8n_kqoucz5ndq17cdvxdrzogvendyn1bupwssg_qliuwua
http://blog.knowsky.com/180534.htm
http://www.iteye.com/problems/76835
http://ganjp.iteye.com/blog/987520
对于第一种,前面已经提到解决方法,讲hibernate映射改为timestamp sql里面date转为datetime
第二种类似于第一种解决
第三种是最无语的,java里面date类型是默认英文 类型(虽然都是日期类型表示方式不一样而已,fri apr 11 00:00:00 cst 2014这种)。 可以转为yyyy--mm-dd hh-mm-ss 这种2014-04-11 但是注意,这是string类型! 我们查询数据库 以date为条件  通常大家应该写查询条件函数
public list find_courseby(int stuid,date cor_date,string ampm);
hibernate生成的查询语句是:
select register0_.cor_id as cor1_0_, register0_.stuid as stuid0_, register0_.cor_date as cor3_0_, register0_.zhou as zhou0_, register0_.week as week0_, register0_.ampm as ampm0_, register0_.firstcor as firstcor0_, register0_.seccor as seccor0_, register0_.intime as intime0_, register0_.outtime as outtime0_, register0_.r_result as r11_0_, register0_.r_sign as r12_0_, register0_.inpic as inpic0_, register0_.outpic as outpic0_ from t_course register0_ where register0_.stuid='220' and register0_.cor_date='fri apr 11 00:00:00 cst 2014' and register0_.ampm='pm'
注意到没有是英文的类型!所以会报(但是我在数据库建立查询语句的时候  英文的日期是不能查询的,但是‘2014-4-4’这种类型却能查到,所以 我讲查询函数日期类型改为string 将日期转为string 完美查询!)错误
从字符串转换日期和/或时间时,转换失败
register0_.cor_date='fri apr 11 00:00:00 cst 2014'
其它类似信息

推荐信息