SQL到HQL - 日期转换问题

时间:2013-04-15 06:14:05

标签: hibernate hql

我希望将以下SQL转换为HQL:

SELECT DISTINCT a.aid from atable a, btable b 
where a.aid=b.id and 
STR_TO_DATE(a.somecolumn, '%Y-%m-%d') BETWEEN CURDATE() - INTERVAL 10 DAY AND CURDATE();

简而言之,我们在表格的一列中将日期存储为字符串。想在HQL中使用相同的方法来获取特定范围的记录。

可以使用单个HQL完成吗?

2 个答案:

答案 0 :(得分:1)

使用DATEDIFF功能 -

SELECT DISTINCT a.aid from atable a, btable b 
where a.aid=b.id and DATEDIFF(current_date(), a.somecolumn) < 10

a.somecolumn 中的日期以 yyyy-MM-dd 格式存储,但作为字符串(a.somecolumn类型为VARCHAR)。可能需要检查默认情况下DATEDIFF函数支持的其他格式。

答案 1 :(得分:0)

Criteria.add(Restrictions.between("propertyName","startDate", "endDate"))