hibernate oracle 中查询Date类型,忽略了时分秒 为什么?如何解决?
我发现用hibernate根据时间日期来查询oracle数据库,无论是用namedQuery还是用参数绑定的session.find("fromWeatherwwhere...
我发现用hibernate根据时间日期来查询oracle数据库,无论是用namedQuery还是用参数绑定的session.find( "from Weather w where w.recordTime=? ", mydate, Hibernate.DATE),结果只比较了年月日,时分秒被忽略掉了
但是可以用字符串的形式来进行包含时分秒的准确查询,例如 session.find( "from Weather w where w.recordTiime=to_date( ' "+ datestr + " ', 'yyyy-mm-dd hh24:mi:ss ') "),其中datestr是形如 "2005-03-01 11:30:00 "格式的字符串,这样其实就是调用oracle本身的函数了!
我必须要做成通用的!
该怎么办,谢谢高手了!
能不能用namedQuery或者使用参数绑定的find来进行准确的查询?哪位有经验,恳请帮忙~~ 展开
但是可以用字符串的形式来进行包含时分秒的准确查询,例如 session.find( "from Weather w where w.recordTiime=to_date( ' "+ datestr + " ', 'yyyy-mm-dd hh24:mi:ss ') "),其中datestr是形如 "2005-03-01 11:30:00 "格式的字符串,这样其实就是调用oracle本身的函数了!
我必须要做成通用的!
该怎么办,谢谢高手了!
能不能用namedQuery或者使用参数绑定的find来进行准确的查询?哪位有经验,恳请帮忙~~ 展开
2个回答
展开全部
方法一
将Oracel数据库对应表中“收单时间的字段”receive_sheet_time,由原来的Date类型改为timestamp
然后,在java程序中,由 (java.util.timestamp)obj[5] 这样返回值,就会显示有“年月月时分秒“了。
如 2010-03-01 14:39:17
方法二
OracleOracel数据库对应表中“收单时间的字段”receive_sheet_time,字段继续保持Date类型不变
将上述sql语句中,返回 “收单日期的字段”receive_sheet_time ,变为
to_char(loading.receive_sheet_time,'YYYY-MM-DD hh24:mi:ss') as receive_sheet_time
作为字符串类型来返回值,
然后在java程序中用,由 (String)obj[5] 这样返回值,就会显示有“年月月时分秒“了。
如 2010-03-01 14:39:17
引用:http://blog.sina.com.cn/s/blog_5021426b0100kg97.html
将Oracel数据库对应表中“收单时间的字段”receive_sheet_time,由原来的Date类型改为timestamp
然后,在java程序中,由 (java.util.timestamp)obj[5] 这样返回值,就会显示有“年月月时分秒“了。
如 2010-03-01 14:39:17
方法二
OracleOracel数据库对应表中“收单时间的字段”receive_sheet_time,字段继续保持Date类型不变
将上述sql语句中,返回 “收单日期的字段”receive_sheet_time ,变为
to_char(loading.receive_sheet_time,'YYYY-MM-DD hh24:mi:ss') as receive_sheet_time
作为字符串类型来返回值,
然后在java程序中用,由 (String)obj[5] 这样返回值,就会显示有“年月月时分秒“了。
如 2010-03-01 14:39:17
引用:http://blog.sina.com.cn/s/blog_5021426b0100kg97.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询