查询日期
java
@Service
public class EventServiceImpl implements EventService {
@Autowired
private EventMapper eventMapper;
@Override
public List<Event> getRecentAndFutureEvents() {
// 当前时间
LocalDateTime now = LocalDateTime.now();
// 近三天开始时间
LocalDateTime threeDaysAgo = now.minusDays(3);
// 转成 java.sql.Timestamp,和 DATETIME 对应
Timestamp startTime = Timestamp.valueOf(threeDaysAgo);
// 查询
return eventMapper.selectByStartTime(startTime);
}
}sql
@Mapper
public interface EventMapper {
@Select("SELECT * FROM event WHERE event_time >= #{startTime}")
List<Event> selectByStartTime(@Param("startTime") Timestamp startTime);
}MySQL 会自动把字符串转成 DATETIME 进行比较。因此也可以直接传入字符串:
java
LocalDateTime threeDaysAgo = LocalDateTime.now().minusDays(3);
String startTimeStr = threeDaysAgo.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));sql
2026-03-16 13:00:25