Я пишу сложные запросы, используя данные JPA Spring, скажем, запрос статистики.
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StatisticsPair {
private LocalDateTime time;
private BigDecimal balance;
}
@Data
@Entity
@Table(name="t_order")
public class Order {
private LocalDateTime createdTime;
private BigDecimal amount;
private OrderStatus status;
}
запрос в хранилище:
@Query("select new xxx.StatisticsPair(createdTime, sum(amount)) from Order where createdTime >= ?1 and createdTime <= ?2 and status = xxx.OrderStatus.COMPLETED group by createdTime")
List<StatisticsPair> statAmountByDay(LocalDateTime from, LocalDateTime to);
метод statAmountByDay
дает мнерезультат вроде:
[
{"time": "2006-01-02 15:04:05", "balance": 100.00}
{"time": "2006-01-02 16:04:05", "balance": 200.00}
{"time": "2006-01-03 15:04:05", "balance": 200.00}
]
но мне нужна статистика по дням, нужна только дата, время бесполезно, ожидаемый результат:
[
{"time": "2006-01-02", "balance": 300.00}
{"time": "2006-01-03", "balance": 200.00}
]
, поэтому я хочу знать, как конвертировать createdTime
(тип datetime) - Date
, например, функция DATE(createdTime)
в mysql, но я не хочу использовать нативный запрос, потому что мой код работает на разных ENV, используют разные базы данных.