mysql - 如何编写一个同时适用于 HSQLDB 和 MySQL 的查询,以在 WHERE 子句中向日期添加天数?

标签 mysql sql hibernate where-clause hsqldb

我想向日期列添加特定天数,然后将其与当前日期进行比较。有什么方法可以实现与 HSQLDB(用于测试)和 MySQL(生产)兼容的方法吗?

为了让事情变得更加复杂,我使用了 Hibernate。

最佳答案

不知道问题的背景,但您可以反过来做吗:将 dae 列与当前日期减去天数进行比较?

我在 hql 中的意思是这样的(如果您更喜欢 JPA 接口(interface),我在本例中使用 jpql):

TypedQuery<SomeClass> q = getEntityManager().crateQuery(
    "select s from SomeClass s where s.date = :date", SomeClass.class);
Calendar now = Calendar.getInstance();
// subtract number of days from current date, e.g. 10 days
now.add(Calendar.DAY, -10);
q.setParameter("date", now);
List<SomeClass> = q.getResultList();

这种方法与数据库无关,但当然只适用于简单的情况,在一些更复杂的情况下它不起作用。

关于mysql - 如何编写一个同时适用于 HSQLDB 和 MySQL 的查询,以在 WHERE 子句中向日期添加天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812338/

相关文章:

MySQL 相当于 informix 中的日期时间年份到分数(3)

php - 在 MySQL 中选择第一个大于 x 的值

成功时 PHP 页面重定向,否则显示错误

mysql - 获取不以元音开头或结尾的列表字符串

mysql - SQL查询使用count时返回0

postgresql - 无法使用Kotlin和Spring数据保留数据

Hibernate Search + Spring Boot : java. lang.IllegalStateException:没有可用的事务性 EntityManager

java - org.springframework.transaction.CannotCreateTransactionException : Could not open Hibernate Session for transaction

php - 外键列在 phpmyadmin 中显示为空

sql - 选择基于员工的可用性查询 SQL Server 2012