正在按日期获取查询-错误:运算符不存在:没有时区的时间戳~~未知



我想在今天之前得到一个数字的总和。我的方法是使用LocalDateTime,格式如下

yyyy-MM-dd HH:mm:ss

我从服务器上挑选的日期是这种格式的

2020-03-26 12:36:14.48947

由于日期变化不断,我的兴趣是处理这个2020-03-26,因为两者都将从格式化的今天的日期和服务器的日期开始存在

这是我使用的查询

"... AND p.regDate LIKE :todayDate..." 

这是DateTimeFormertter

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime today = null;
today = LocalDateTime.now();
System.out.println("here is today " + today);

用上面的方法,我得到了一个错误。请问我能从查询中得到今天的日期吗

首先,您需要对查询使用LocalDate而不是LocalDateTime

LocalDate today = LocalDate.now(); // current date "2020-03-26"
// or a custom LocalDate
LocalDate today = LocalDate.of(2020, Month.MARCH, 26);

然后,要从数据库中的datetime中获取日期部分,您可以使用:

"... AND DATE(p.regDate) = :todayDate..." 

其中:DATE(p.regDate)只提取日期部分,与=而非LIKE比较

最新更新