如何根据数据库的时间取其中距离当前事件最近的3个值

怎么取其中最大的3个值,效率比较快一点,
List allBirds = birdSoundService.allBirds();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
for(BirdSoundEntity birdSoundEntity : allBirds){
//获取数据库的时间
Date createDate = birdSoundEntity.getCreateDate();
System.out.println("data时间"+createDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(createDate);
long all = calendar.getTimeInMillis();
System.out.println("时间的毫秒数"+calendar.getTimeInMillis());
}

求所有事件到现在的时间差的绝对值,按照从小到大排序取前3条。

当前事件的话 直接 按时间排序倒序输出前三个, order by 你的时间字段 desc limit 3