if(Calendar.getInstance().get(Calendar.DAY_OF_WEEK) == 1)
{ //判断是否为周日,是的话发这句SQL,不是的话发另一句
pstm = connection.prepareStatement(“SELECT * FROM sign WHERE ((YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now()) and s_week=7) or (YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now())-1 and s_week!=7))”) ;
}
else {
pstm = connection.prepareStatement(“SELECT * FROM sign WHERE YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now()) and s_week!=7″) ;
}
resultSet = pstm.executeQuery();
解释一下:
先判断今天是不是周天,如果是周天的话,刚查询上个星期的数据不包括周天….因为外国的周天算是下个星期开始,中国是本星期结束,所以到周天实际已经进入下个星期了
SQL语句是:SELECT * FROM sign(表名) WHERE ((YEARWEEK(date_format(signTime(时间字段名),’%Y-%m-%d’)) = YEARWEEK(now()) and s_week(记录今天周几的字段,也可直接用函数获得)=7) or (YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now())-1 and s_week!=7))
然后如果不是周天,那么就查询这个星期的数据不包括周天.
SQL语句是:SELECT * FROM sign WHERE YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now()) and s_week!=7