我要查询最近半年没有订单的的记录,要怎么查询?
[b]问题补充:[/b]
我是要动态定时检查半年前的数据?
[b]问题补充:[/b]
道理知道啊,就是不知道怎么减,望高手详细一点。
[code="java"]
import java.util.*;
public class CalendarTest {
/**
* @param args
*/
public static void main(String[] args) {
//当前的时间
Date rightNow = Calendar.getInstance().getTime();
Calendar rightNowBefore = Calendar.getInstance();
//得到当前日期的月份
int rightMonth = rightNowBefore.get(Calendar.MONTH);
//设置为半年前,也就是6个月前,减6嘛
rightNowBefore.set(Calendar.MONTH, rightMonth-6);
//半年前的时间
Date beforeNow = rightNowBefore.getTime();
System.out.println(rightNow);
System.out.println(beforeNow);
}
}
[/code]
设计查询条件嘛,
半年前时间<data<现在时间 and 订单 is null
当前的时间你总是可以动态取得嘛,
再减半年就是半年前啊,?
计算方法:
[code="java"]
Calendar c=Calendar.getInstance();
Date today=c.getTime();
System.out.println("today is @ "+today);
c.add(Calendar.MONTH, -6);
Date halfYearBefore=c.getTime();
System.out.println("Half year before @"+halfYearBefore);
[/code]
如果使用hibernate/jpa,查询语言中,可以直接使用Date类型进行比较。
如果使用SQL,各数据库都不同之处。
先转换成字符串。
对于MySQL,可以转换成'2009-03-02 11:09'相似的格式在SQL中进行比较。
对于Oracle,可以在SQL语句用to_date将字符串转换Oracle时间格式。