正文
按时间查询的java代码 按时间段查询的sql语句
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
javaWeb中,根据用户输入一个日期,查询一周日期(上周日,到本周六)。
使用Calender类很容易啊。。。。给你代码:
input.jsp:
%@page contentType="text/html" pageEncoding="UTF-8"%
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
""
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleJSP Page/title
/head
body
form action="showDate" method="post"
请输入日期 input type="text" name="year" value="" size="4" /-
input type="text" name="month" value="" size="2" /-
input type="text" name="date" value="" size="2" /
input type="submit" value="确定" /
/form
/body
/html
servlet(showDate.java):
package cliff;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class showDate extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String year, month, date;
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
year = request.getParameter("year");
month = request.getParameter("month");
date = request.getParameter("date");
//根据得到的请求参数,构建一个Calendar
Calendar c = Calendar.getInstance();
// 注意月份的起始值为0而不是1,所以要设置八月时,我们用7而不是8
c.set(Integer.parseInt(year), Integer.parseInt(month) - 1, Integer.parseInt(date));
//得到输入的日期是一周的第几天
int dow = c.get(Calendar.DAY_OF_WEEK);
//得到一周的第一天,也就是星期天的日期
c.add(Calendar.DATE, dow - 7);
out.println("得到的一周日期为");
for (int i = 0; i 7; i++) {
out.print(c.get(Calendar.DATE) + " ");
//继续使用Calendar的目的是为了防止跨月份的情况出现
c.add(Calendar.DATE, 1);
}
} finally {
out.close();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "cliff's showDate servlet";
}// /editor-fold
}
功能达到,收工!
另:为了简便,这里面没有对错误输入进行处理。应该判断输入的是不是合法的年月日。。。。
java中查询时间sql语句怎么写???
查的时候用时间转换函数吧字符串格式的时间转成date类型的,就好了
再有java中有专门处理数据库date类型数据的类,
java.sql.Date
或者也可以使用过Timestamp
java 时间段查询
不一定非要在sql中判断吧按时间查询的java代码,可以先取两个值,然后在java类型判断,通过拼接sql的形式进行查询,如按时间查询的java代码:if(存在开始时间,不存在结束时间||存在结束时间,不存在开始时间){
select * from 表名where 日期字段 = '时间'
}else if(都存在){
select * from 表名 where 日期字段 between 开始时间' and '结束时间'
}
如何在Java中对MongoDB按日期进行查询统计
方法一:通过构造BasicDBObject对象来进行查询
[java] view plain copy
int startYear=2015,endYear=2016;
int startMonth=12,endMonth=1;
int startDay=1,endDay=1;
BasicDBObject query= new BasicDBObject("applydate", new BasicDBObject("$gte", new Date(startYear - 1900, startMonth - 1, startDay)).append("$lt", new Date(endYear - 1900, endMonth -1, endDay)));//因为无法确知当前月有多少天,所以就从当月的1号(包含)计到下月1号(不包含)
int iCount = cltApplies.find(query).count();
System.out.println(iCount);
经测试上述代码执行完毕后iCount为9。也就是在2016-1-1至2016-1-31期间有9条记录。
方法二:通过BasicDBObjectBuilder对象来查询:
[java] view plain copy
int startYear=2016,endYear=2016;
int startMonth=1,endMonth=2;
int startDay=1,endDay=1;
BasicDBObject query= new BasicDBObject();
query.put("applydate", BasicDBObjectBuilder.start("$gte", new Date(startYear - 1900, startMonth - 1, startDay)).add("$lt", new Date(endYear - 1900, endMonth - 1, endDay)).get());
int iCount = cltApplies.find(query).count();
System.out.println(iCount);
上述代码执行后iCount同样为9。
注意:因为java.util.Date(year,month,day)这个构造函数中year是超出1900的年数,所以需要减去1900;month从0开始,所以需要减去1。这个问题容易被初学者忽视。
下面扩展地说一下如果要进行带日期过滤条件的统计,该如何做。
前面的东西都相同,只是在统计的时候需要调用集合的distinct方法。如统计某个字段不重复的值有哪些,可用如下写法:
[java] view plain copy
int startYear=2016,endYear=2016;
int startMonth=1,endMonth=2;
int startDay=1,endDay=1;
BasicDBObject query= new BasicDBObject();
query.put("applydate", BasicDBObjectBuilder.start("$gte", new Date(startYear - 1900, startMonth - 1, startDay)).add("$lt", new Date(endYear - 1900, endMonth - 1, endDay)).get());
ListString lstUserIds = cltApplies.distinct("userId", query);
System.out.println(lstUserIds.size());
上面这段代码的执行结果为4。也就是在2016-1-1至2016-1-31之间出现了4个不同的userId。
按时间查询的java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于按时间段查询的sql语句、按时间查询的java代码的信息别忘了在本站进行查找喔。