Skip to content

查询日期

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