java - QueryDSL:格式化字符串的 DateTimePath

标签 java date jpql querydsl

我需要在 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/

相关文章:

java - 移动小程序而不重新加载它

Mysql:选择任意年份 1 月 22 日至 2 月 3 日之间的时间戳

java - JPQL 查询非相关实体的存储库

java - 将多语言数据库设计转换为 JPA 实体

没有硬编码大小的 Java 数组声明

java - 解释大 O 循环和数组

MySQL 查询在日期范围内返回错误的结果计数

javascript - 使用 .toISOString() 转换日期什么都不做?

java - 在 JPQL 中将表修剪为 500 条记录

java - 仅设置如果依赖于Gradle插件任务