【发布时间】:2012-06-13 19:35:25
【问题描述】:
如何在 JPA 标准 API 中创建“order by”子句,通过避开日期的时间部分来对日期字段进行排序。
相当于:- SELECT EMP_NAME,DOJ FROM EMPLOYEE ORDER BY trunc(DOJ).
【问题讨论】:
-
由于您仅按此列排序,因此按日期和时间排序将产生可接受的结果:行将按日期排序。
-
@siebz0r :- 如问题中所述,当 DOJ 字段输入 DB 时,它将包含日期+时间。但在某些情况下,需要避开时间部分,仅根据日期显示员工的详细信息(例如在屏幕上显示)。
-
@JB Nizet :-假设我想再排序一列(比如按 DOJ 排序,姓名)。在这种情况下,它可能会导致问题。
-
如何显示数据与获取数据的方式无关。只需使用日期+时间获取数据,当您显示日期时,去掉时间。简而言之,请选择@JBNizet 的答案。
-
假设我想根据 DOJ(desc) 和 NAME (asc) 对员工详细信息进行排序。有两个emp。 (第一届)- DOJ=13-Jun-12 10:00:00,姓名=ABC,(第二届)- DOJ=13-Jun-12 11:00:00,姓名=PQR。在这里,如果我们考虑日期+时间,则从 11>10 小时开始,第二个 emp 将首先出现。但是如果我们避免日期字段中的时间部分,第一个 emp 将首先出现,然后是第二个 emp。(这就是我需要的)。希望这个例子能解释我面临的问题。
标签: date jpa sql-order-by criteria-api