我的数据库中有一个日期时间类型的列。我想首先提取记录,然后我想将此日期时间值与参考日期时间值进行比较,然后在相应的+ - 2个月内监控某些活动datetime值(在该datetime之前2个月和datetime之后2个月)。我能够获取记录,但我对操纵datetime值一无所知。我读了这篇文章(How to change time in datetime?)但我无法得到因为它只改变时间而不是datetime的日期部分。因为帖子是针对C#的,所以我无法在Java中做同样的事情。
注意:我的日期时间值格式为yyyy-mm-dd hh:mm:ss
答案 0 :(得分:1)
如果你愿意,你可以在MySQL中做一些。
SELECT whatever FROM whattable
WHERE whatdatetime > targettime - INTERVAL 2 MONTH
AND whatdatetime < targettime + INTERVAL 2 MONTH
这将检索指定的四个月范围内的记录。
或者您可以使用MySQL的日期算法。
SELECT whatdatetime,
whatdatetime - INTERVAL 2 MONTH AS startrange,
whatdatetime + INTERVAL 2 MONTH AS endrange
要在Java中执行此操作,您将需要使用由java.util.GregorianCalendar实现的java.util.Calendar抽象类。
Java的GregorianCalendar类的实例可以提供以下方法调用:
calendar.add(Calendar.MONTH, -2);
calendar.add(Calendar.MONTH, 2);
这可以让你到达目的地。