我需要在 querydsl 中使用“like”比较日期和字符串。所以我需要将 datetimepath 转换为特定格式的字符串。在我的例子中是“MM/dd/yyyy” 类似的东西:
String dateString = "%20/2015%";
QueryBase whereClause = query.where(myEntity.date.toString("MM/dd/yyyy").like(dateString));
myEntity.date 是 DateTimePath<java.util.Date>
任何想法如何将其表示为字符串?
最佳答案
我找到的唯一解决方案是使用 native 函数(在我的例子中是 MySql)。 像这样:
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", myEntity.date, "%m/%d/%Y")
.likeIgnoreCase(dateString);
关于java - QueryDSL:格式化字符串的 DateTimePath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40931750/