我想在多选jpa条件查询中选择特定格式的日期 像我们一样使用
select to_char(tn.dbdate,'yyyy-MM-dd') from transaction tn在oracle。
我可以使用
query.multiselect(cb.function("TO_CHAR",String.class,transaction.get("dbdate")) );
但是这会以数据库格式返回日期,即
Wed Apr 2 12:20:50 2014
但如何以特定的日期格式获取
'yyyy-MM-dd'
答案 0 :(得分:7)
在当前查询中,没有给出格式作为TO_CHAR函数的参数。这就是为什么除了违约之外它不能做太多其他事情。作为documented,也可以通过CriteriaBuilder将多个参数传递给数据库函数。函数:
query.multiselect(
cb.function("TO_CHAR",
String.class,transaction.get("dbdate"),
cb.literal("yyyy-MM-dd")));
答案 1 :(得分:0)
您可以从数据库中取出日期,然后根据需要对其进行格式化。
答案 2 :(得分:0)
这对我有用:
Expression<String> dateStringExpr = cb.function("to_char", String.class,
root.get("effectiveStartDate"), cb.literal("YYYY-MM-DD HH12:MI:SS"));
ls.add(cb.like(cb.lower(dateStringExpr), "%" + effectiveStartDate.get().toLowerCase() + "%"));