java怎么查询数据库一周内的记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么查询数据库一周内的记录相关的知识,希望对你有一定的参考价值。

tab1.setNumRows(0);
Calendar ca= Calendar.getInstance();//获取Calendar实例

Date date2 = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String s_date = dateFormat.format(date2);
try

ca.setTime(DateFormat.getDateInstance().parse(s_date));
b=ca.get(ca.DAY_OF_YEAR);

catch (ParseException e1)
e1.printStackTrace();


int month[] = null;
String[] monthdate=null;

for(int s=0;s<=num;s++)
try
ca.setTime(DateFormat.getDateInstance().parse(String(a[s][2])));
month[s]=ca.get(ca.DAY_OF_YEAR);
System.out.println(month[s]);
catch (ParseException e1)
// TODO Auto-generated catch block
e1.printStackTrace();



for(int s=0;s<=num;s++)
if(b-month[s]<=30)
monthdate[s]=(java.lang.String) a[s][2];




我想从数据库取出日期与当天相减,然后重新查询刷新TABEL
却出现错误

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1380)
at java.text.DateFormat.parse(DateFormat.java:355)
at load.Business$3.actionPerformed(Business.java:216)

参考技术A 空指针异常,大体看了一下,month[s]=ca.get(ca.DAY_OF_YEAR)貌似不对,数组越界了。今天(2013/12/22),ca.get(ca.DAY_OF_YEAR)=356,虽然没看明白你想干什么,但是从你起的名来看应该是Calendar.DAY_OF_MONTH本回答被提问者采纳 参考技术B 即便这段代码运行在数据库服务器,也应该是在sql取数据库的当前日期,象oracle就用 sysdate-7表示7天前,sqlserver是getdate()-7

mysql中怎么查询一周内,三个月内,半年内的数据?

参考技术A mysql中怎么查询一周内,三个月内\\x0d\\x0a使用sql语句查询日期在一周内的数据\\x0d\\x0aselect * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据\\x0d\\x0aselect * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据\\x0d\\x0a SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天\\x0d\\x0a SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 // 上一月\\x0d\\x0a--查询当天: \\x0d\\x0aselect * from info where DateDiff(dd,datetime,getdate())=0 \\x0d\\x0a\\x0d\\x0a--查询24小时内的: \\x0d\\x0aselect * from info where DateDiff(hh,datetime,getDate())<=24 \\x0d\\x0a\\x0d\\x0a--info为表名,datetime为数据库中的字段值\\x0d\\x0a--查询当天:\\x0d\\x0aselect * from info where DateDiff(dd,datetime,getdate())=0\\x0d\\x0a--查询24小时内的:\\x0d\\x0aselect * from info where DateDiff(hh,datetime,getDate())<=24\\x0d\\x0a--info为表名,datetime为数据库中的字段值\\x0d\\x0aSql代码\\x0d\\x0a--查询当天记录另类的方法 \\x0d\\x0aSELECT * \\x0d\\x0aFROM j_GradeShop \\x0d\\x0aWHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + 00:00:00.000\') \\x0d\\x0aAND CONVERT(datetime, LEFT(GETDATE(), 10) + 00:00:00.000\') + 1) \\x0d\\x0aORDER BY GAddTime DESC\\x0d\\x0a--查询当天记录另类的方法\\x0d\\x0aSELECT *\\x0d\\x0aFROM j_GradeShop\\x0d\\x0aWHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + 00:00:00.000\')\\x0d\\x0aAND CONVERT(datetime, LEFT(GETDATE(), 10) + 00:00:00.000\') + 1)\\x0d\\x0aORDER BY GAddTime DESC\\x0d\\x0aDATEDIFF 函数:\\x0d\\x0a语法:\\x0d\\x0aDATEDIFF ( datepart , startdate , enddate )\\x0d\\x0a备注:enddate 减去 startdate。如果 startdate 晚于 enddate,则返回负值。\\x0d\\x0a如果结果超出整数值范围,则 DATEDIFF 将产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。\\x0d\\x0a跨分钟、秒和毫秒等边界计算的方法使得 DATEDIFF 指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。\\x0d\\x0a可以再MSSQL中测试:\\x0d\\x0aSql代码\\x0d\\x0a--两个时间差刚好是24 \\x0d\\x0a--打印的方式 \\x0d\\x0aprint dateDiff(hh,\'2009-1-1 0:0:0\',\'2009-1-2 0:0:0\') \\x0d\\x0a--查询的方式 \\x0d\\x0aprint dateDiff(hh,\'2009-1-1 0:0:0\',\'2009-1-2 0:0:0\')\\x0d\\x0a--两个时间差刚好是24\\x0d\\x0a--打印的方式\\x0d\\x0aprint dateDiff(hh,\'2009-1-1 0:0:0\',\'2009-1-2 0:0:0\')\\x0d\\x0a--查询的方式\\x0d\\x0aprint dateDiff(hh,\'2009-1-1 0:0:0\',\'2009-1-2 0:0:0\')\\x0d\\x0aSql代码\\x0d\\x0a--本月记录 \\x0d\\x0aSELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0

以上是关于java怎么查询数据库一周内的记录的主要内容,如果未能解决你的问题,请参考以下文章

mysql中怎么查询一周内,三个月内,半年内的数据?

MYSQL查询一周内的数据(最近7天的)怎么写

mysql查询一周内每天的记录数。

android SQLite中数据库查询,如何查询一段时间内的记录

sql 查询每天都有登录的人

sequelize存在数据库的时间是DATETIME类型,怎么查询时间段的数据