gpt4 book ai didi

postgresql - 如何在querydsl中减去小时数?

转载 作者:行者123 更新时间:2023-11-29 14:02:41 28 4
gpt4 key购买 nike

我需要在查询 dsl 中构建以下查询:

select * from my_table where (updated_at - interval '5 
hours')::date='2018-04-06' limit 10;

但我无法减去小时数。我正在使用 Spring 框架并使用 postgres 数据库。

我编写了这段代码来创建一个 bool 谓词:

StringTemplate dbDate = 
Expressions.stringTemplate("function('DATE_TRUNC', 'day', {0})",
dateTimePath);
StringTemplate compareDate =
Expressions.stringTemplate("function('TO_DATE', {0}, {1})", value,
"YYYY-MM-dd");
new BooleanBuilder(dbDate.eq(compareDate));

上面的代码基本上只是比较数据库中的日期,而不是减去小时数。我需要代码来减去小时数。

当我尝试像这样减去小时数时:

StringTemplate dbDate = Expressions.stringTemplate("function('DATE_TRUNC', 'day', {0} - interval '5 hours')", dateTimePath);

它给出:意外的标记:间隔错误

最佳答案

query.where(Expressions.dateTimeOperation(
Date.class, Ops.DateTimeOps.ADD_HOURS,
myTable.updatedAt,
Expressions.asNumber(-5)).eq(java.sql.Date.valueOf(LocalDate.of(2018, Month.APRIL, 06))))
.limit(10L);

关于postgresql - 如何在querydsl中减去小时数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53930759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com