Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Hibernate中比较日期和时间_Hibernate_Compare - Fatal编程技术网

在Hibernate中比较日期和时间

在Hibernate中比较日期和时间,hibernate,compare,Hibernate,Compare,我在数据库中定义了一个列notification_date作为DATETIME 当用户筛选时,我只得到日期。所以我使用Java将其转换为数据和时间。例如,如果用户搜索日期为“2012-09-26”。最终转换的日期和时间格式为“2012-09-26 17:34:00” 当我想搜索日期筛选操作(如等于、小于、大于和日期之间)时,使用Hibernate条件查询大于和小于操作无法获得正确的结果 使用的代码 crit.add(Restrictions.gt("notificationDate",notif

我在数据库中定义了一个列notification_date作为DATETIME

当用户筛选时,我只得到日期。所以我使用Java将其转换为数据和时间。例如,如果用户搜索日期为“2012-09-26”。最终转换的日期和时间格式为“2012-09-26 17:34:00”

当我想搜索日期筛选操作(如等于、小于、大于和日期之间)时,使用Hibernate条件查询大于和小于操作无法获得正确的结果

使用的代码

crit.add(Restrictions.gt("notificationDate",notificationVO.getNotificationDate()));
限制将根据情况而改变

为了只比较日期,Hibernate中是否有可用的函数

还有其他解决此问题的方法吗?

根据您的评论:

如果用户输入2012-09-26且搜索条件小于,则我需要所有小于2012-09-26的日期

那么限制应该是:

crit.add(Restrictions.lt("notificationDate", notificationVO.getNotificationDate()));
如果用户输入相同的日期,且搜索条件为“大于”,则您使用以下限制:

crit.add(Restrictions.gt("notificationDate", notificationVO.getNotificationDate()));

当然,您将获得日期和时间大于2012-09-26 00:00:00的所有条目,当然包括2012-09-26日期的所有条目。

我不明白。用户输入2012-09-26作为日期。您需要哪些通知?日期/时间为2012-09-26或更晚的人?日期/时间为2012-09-27或更高版本的用户?@JBNizet:用户搜索不同。我无法同时解决这两个问题。E、 g小于2012-09-26,大于2012-09-26。我还是不明白。你为什么不回答我的问题?如果用户输入2012-09-26,您希望您的查询检索哪些通知?@JBNizet:如果用户输入2012-09-26且搜索条件小于,则我需要所有小于2012-09-26的日期。我只需要按日期进行比较。如果搜索大于2012-09-26,则预期结果为2012-09-27。如果搜索范围小于2012-09-26,则预期结果为2012-09-25及更低。你给出的解决方案就是我发布的问题。如果我搜索大于,我将获得2012-09-26 00:00:01的值。不应该。这就是为什么我让你告诉我你现在最后告诉我的,三次。如果要获取27及更高版本的通知,请在用户输入的日期上加上一天,并执行上述查询(使用
ge
而不是
gt
),然后如何比较equals大小写?获取>=2012-09-26和<2012-09-27的所有日期。谢谢我使用两个标准来比较日期相等。我想知道是否有任何函数只通过丢弃时间来比较日期。像mysql函数像date\u格式?