gpt4 book ai didi

java - 使用 now() sql 将小时和分钟添加到 hql

转载 作者:行者123 更新时间:2023-11-29 06:56:16 26 4
gpt4 key购买 nike

我正在使用 spring、hibernate 和 mysql。我想要我的时区的日期和时间。我来自斯里兰卡,所以我想在 sql 中使用 now() 函数添加 +5 小时 30 分钟

我编写了一个查询并在 sql workbench 中运行它,它工作正常。

SELECT date_add(date_add(now(),INTERVAL +5 HOUR),INTERVAL 30 MINUTE);

The DATE_ADD() function returns a date after a certain time/date interval has been added. But when I adding to hql, it throws error. My full query in hql is

FROM Survey where  convert(endDateTime, datetime)< date_add(date_add(now(),INTERVAL +5 HOUR),INTERVAL 30 MINUTE);

当我在 sql workbench 中使用上面的代码时,它工作正常。但在hql中不起作用。

错误是

 nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: expecting CLOSE, found 'HOUR' near line 1, column 114 [FROM com.pulseBeatMaster.model.Survey where  convert(endDateTime, datetime)< date_add(date_add(now(),INTERVAL +5 HOUR),INTERVAL 30 MINUTE)]; nested exception is org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found 'HOUR' near line 1, column 114 [FROM com.pulseBeatMaster.model.Survey where  convert(endDateTime, datetime)< date_add(date_add(now(),INTERVAL +5 HOUR),INTERVAL 30 MINUTE)]] with root cause

是否有任何方法可以获取我的时区的当前日期和时间或使用 now() 添加+5 小时 30 分钟

提前致谢。

最佳答案

正如@Jens所说,我认为当前HQL不支持所有日期函数,要么计算代码中的日期(应该非常简单),要么使用 native 查询,因为您似乎没有使用任何日期函数查询参数。

另外,convert 存在这一事实并不意味着 date_add 或 date_sub 存在。

在大多数情况下,日期将根据代码计算,即使只是为了在您只想更改某些数据时轻松地重复使用相同的查询。

关于java - 使用 now() sql 将小时和分钟添加到 hql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483622/

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