如何将日期参数分配给当前时区的Hibernate查询? [英] How to assign Date parameters to Hibernate query for current timezone?

查看:232
本文介绍了如何将日期参数分配给当前时区的Hibernate查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当您为指定的SQL参数分配日期时,Hibernate会自动将其转换为GMT时间。



假设您有一个查询:



<$>如何使它在当前服务器时区使用所有日期? p $ p> Query q = session.createQuery(from Table where date_field<:now);
q.setDate(now,new java.util.Date());

now将被设置为GMT时间,而新的Date()将获取当前的服务器时间。

谢谢。

解决方案

如果您使用 query.setDate(),那么它会自动将日期转换为GMT,所以如果您通过2009-01-16 12:13:14 变成2009-01-16 00:00:00。



要考虑时间,您需要使用 query.setTimestamp(date,dateObj)。 / p>

When you assign a date to a named SQL parameter Hibernate automatically converts it to GMT time. How do you make it use the current server timezone for all dates?

Lets say you have a query:

Query q = session.createQuery("from Table where date_field < :now");
q.setDate("now", new java.util.Date());

"now" will be set to GMT time, while "new Date()" gets your current server time.

Thanks.

解决方案

As it turned out Hibernate doesn't convert dates to GMT automatically, it just cuts off time if you use query.setDate(), so if you pass "2009-01-16 12:13:14" it becomes "2009-01-16 00:00:00".

To take time into consideration you need to use query.setTimestamp("date", dateObj) instead.

这篇关于如何将日期参数分配给当前时区的Hibernate查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆