【发布时间】:2021-09-23 13:52:27
【问题描述】:
我正在尝试在现有的 Date 表达式中添加一个日期。如果我这样做,我会收到 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“programsub0_.subscribed_date)”附近使用正确的语法
我的代码:
Expression<Date> expiryDate = criteriaBuilder.function("ADDDATE", Date.class,
criteriaBuilder.literal("DAY"),
programSubscriptionRoot.get("subscriptionPlan").get("duration"),
programSubscriptionRoot.get("subscribedDate"));
在上面的代码示例中,programSubscriptionRoot.get("subscriptionPlan").get("duration") 将给出 Long.class 和 programSubscriptionRoot.get(" subscribedDate")) 会给出一个 Date.class。
我还使用了“DATE_ADD”、“DATEADD”而不是“ADDDATE”。但它不起作用。
请帮助我在上面的查询中添加订阅日的天数。谢谢。
【问题讨论】:
-
ADDDATE的语法是ADDDATE(date, INTERVAL value addunit)。你确定你是在代码中这样做的吗? -
嗨@aksappy,感谢您的回复...我已经参考了SQL documentation的方法,其语法与您所说的相同。但是在这种情况下如何实现呢?你能给我这个语法的代码sn-p吗?
标签: java mysql criteria specifications