如何在JSP页面中得到以JSP服务器时间为准的2小时内的记录
就是连上数据库以后,要怎么样能得到服务器端的时间,并以这个时间为准,查询两个小时前到查询时间的数据,这个句子要怎么写???  
是要建立个  函数获得本机时间,再把函数添加到SQL查询语句中吧!具体是怎么写的???  还有如果建立一个日期的下拉菜单,是怎么能把里面的数据弄成今年今天以前的时间
如 今天是2006年5月8号下拉菜单里可选数据就是2006-01-01到2006-05-08!这个是怎么弄的?
十分感谢~!  
谢谢大家!  

解决方案 »

  1.   

    1.
    // 计算起-止时间
    Calendar c = Calendar.getInstance();
    java.util.Date now = c.getTime();
    c.add(Calendar.HOUR, -2);
    java.util.Date start = c.getTime();// 执行查询
    String sql = "SELECT * FROM table WHERE time >= ? AND time <= ?";
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setDate(1, new java.sql.Date(start.getTime()));
    ps.setDate(2, new java.sql.Date(now.getTime()));
    ps.executeQuery();2.
    Calendar c = Calendar.getInstance();
    c.set(Calendar.MONTH, 0);
    c.set(Calendar.DATE, 1);
    Date firstDayOfYear = c.getTime(); 
      

  2.   

    这个是我连接数据库的代码!测试过可以运行的,要把这些代码加到那段里面啊?
    SQL语句之前还是之后?还有你第二个句子我不是很明白!谢谢!<%@ page contentType="text/html;charset=gb2312"%>
    <% 
    //变量声明 
    java.sql.Connection sqlCon; //数据库连接对象 
    java.sql.Statement sqlStmt; //SQL语句对象 
    java.sql.ResultSet sqlRst; //结果集对象 
    java.lang.String strCon; //数据库连接字符串 
    java.lang.String strSQL; //SQL语句 
    int intPageSize; //一页显示的记录数
    int intRowCount; //记录总数 
    int intPageCount; //总页数 
    int intPage; //待显示页码 
    java.lang.String strPage; 
    int i,j,k; //设置一页显示的记录数 
    intPageSize = 10; //取得待显示页码 
    strPage = request.getParameter("page"); 
    if(strPage==null){
    //表明在QueryString中没有page这一个参数,此时显示第一页数据 
    intPage = 1; 
    } else{
    //将字符串转换成整型 
    intPage = java.lang.Integer.parseInt(strPage); 
    if(intPage<1) intPage = 1; }
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
    String url="jdbc:odbc:sfsh1DB";
    //设置数据库连接字符串 
    strCon = "jdbc:odbc:sfsh1DB";
    //连接数据库 
    sqlCon = java.sql.DriverManager.getConnection(url,"sfis1","sfis1"); 
    //创建SQL语句对象 
    sqlStmt = sqlCon.createStatement(); 
    //获取记录总数 
    strSQL = "select count(*) from sfism4.r105"; 
    sqlRst = sqlStmt.executeQuery(strSQL); sqlRst.next(); //记录集刚打开的时候,指针位于第一条记录之前 
    intRowCount = sqlRst.getInt(1); 
    sqlRst.close(); //关闭结果集 //记算总页数 
    intPageCount = (intRowCount+intPageSize-1) / intPageSize; 
    //调整待显示的页码 if(intPage>intPageCount) intPage = intPageCount; 
    //设置获取数据SQL语句 
    strSQL = "select * from sfism4.r105"; 
    //执行SQL语句并取得结果集 
    sqlRst = sqlStmt.executeQuery(strSQL);
    //将记录指针定位到待显示页的第一条记录上 
    i = (intPage-1) * intPageSize; 
    for(j=0;j<i;j++) sqlRst.next(); %> <html> 
    <head>
    <title>分页显示</title>
    <style type="text/css">
    <!--
    td,body {
    font-family: "Arial", "Helvetica", "sans-serif";
    font-size: 14px;
    }
    -->
    </style></head> <body>
    <table width=770 border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#0066CC" style="border-collapse: collapse">
     <% 
    //显示数据 
    i = 0; 
    while(i<intPageSize && sqlRst.next()){ 
    %>
     <tr> 
      <td><%=sqlRst.getString(1)%></td>
      <td><%=sqlRst.getString(2)%></td>
      <td><%=sqlRst.getString(3)%></td>
      <td><%=sqlRst.getString(4)%></td>
     </tr>
     <% i++; } %>
     <tr> 
      <td colspan=4 align=center> 第<%=intPage%>页 共<%=intPageCount%>页 
    <%if(intPage>1){%> <a href="">上一页</a>
    <%
    }
    %>       
    <%if(i<intPageSize){%> 
    <a href="1.jsp?i=<%=intPage+1%>;&sqlCon=<%=sqlCon%>;">下一页</a>
    <%}%>    
    </td>
     </tr>
    </table>
    </body> 
    </html> <% 
    //关闭结果集 
    sqlRst.close(); 
    //关闭SQL语句对象 
    sqlStmt.close(); 
    //关闭数据库
    sqlCon.close();
    %>
      

  3.   

    <%@ page contentType="text/html;charset=gb2312"%>
    <% 
    //变量声明 
    java.sql.Connection sqlCon; //数据库连接对象 
    java.sql.PreparedStatement sqlStmt; //SQL语句对象 
    java.sql.ResultSet sqlRst; //结果集对象 
    java.lang.String strCon; //数据库连接字符串 
    java.lang.String strSQL; //SQL语句 
    int intPageSize; //一页显示的记录数
    int intRowCount; //记录总数 
    int intPageCount; //总页数 
    int intPage; //待显示页码 
    java.lang.String strPage; 
    int i,j,k; //设置一页显示的记录数 
    intPageSize = 10; //取得待显示页码 
    strPage = request.getParameter("page"); 
    if(strPage==null){
    //表明在QueryString中没有page这一个参数,此时显示第一页数据 
    intPage = 1; 
    } else{
    //将字符串转换成整型 
    intPage = java.lang.Integer.parseInt(strPage); 
    if(intPage<1) intPage = 1; }
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
    String url="jdbc:odbc:sfsh1DB";
    //设置数据库连接字符串 
    strCon = "jdbc:odbc:sfsh1DB";
    //连接数据库 
    sqlCon = java.sql.DriverManager.getConnection(url,"sfis1","sfis1"); // 计算起-止时间
    java.util.Calendar c = java.util.Calendar.getInstance();
    java.util.Date now = c.getTime();
    c.add(Calendar.HOUR, -2);
    java.util.Date start = c.getTime();//获取记录总数 
    //strSQL = "select count(*) from sfism4.r105"; 
    // 下面的 time 要改成你的数据表中记录数据生成时间的那个字段
    sqlSQL = "SELECT count(*) FROM sfism4.r105 WHERE time >= ? AND time <= ?";//创建SQL语句对象 
    sqlStmt = sqlCon.prepareStatement(sqlSQL); 
    sqlStmt.setDate(1, new java.sql.Date(start.getTime()));
    sqlStmt.setDate(2, new java.sql.Date(now.getTime()));
    sqlRst = sqlStmt.executeQuery(); sqlRst.next(); //记录集刚打开的时候,指针位于第一条记录之前 
    intRowCount = sqlRst.getInt(1); 
    sqlRst.close(); //关闭结果集 //记算总页数 
    intPageCount = (intRowCount+intPageSize-1) / intPageSize; 
    //调整待显示的页码 if(intPage>intPageCount) intPage = intPageCount; 
    //设置获取数据SQL语句 
    //strSQL = "select * from sfism4.r105"; 
    // 下面的 time 要改成你的数据表中记录数据生成时间的那个字段
    sqlSQL = "SELECT * FROM sfism4.r105 WHERE time >= ? AND time <= ?";//执行SQL语句并取得结果集 
    sqlStmt = sqlCon.prepareStatement(sqlSQL); 
    sqlStmt.setDate(1, new java.sql.Date(start.getTime()));
    sqlStmt.setDate(2, new java.sql.Date(now.getTime()));
    sqlRst = sqlStmt.executeQuery();//将记录指针定位到待显示页的第一条记录上 
    i = (intPage-1) * intPageSize; 
    for(j=0;j<i;j++) sqlRst.next(); %> <html> 
    <head>
    <title>分页显示</title>
    <style type="text/css">
    <!--
    td,body {
    font-family: "Arial", "Helvetica", "sans-serif";
    font-size: 14px;
    }
    -->
    </style></head> <body>
    <table width=770 border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#0066CC" style="border-collapse: collapse">
     <% 
    //显示数据 
    i = 0; 
    while(i<intPageSize && sqlRst.next()){ 
    %>
     <tr> 
      <td><%=sqlRst.getString(1)%></td>
      <td><%=sqlRst.getString(2)%></td>
      <td><%=sqlRst.getString(3)%></td>
      <td><%=sqlRst.getString(4)%></td>
     </tr>
     <% i++; } %>
     <tr> 
      <td colspan=4 align=center> 第<%=intPage%>页 共<%=intPageCount%>页 
    <%if(intPage>1){%> <a href="">上一页</a>
    <%
    }
    %>       
    <%if(i<intPageSize){%> 
    <a href="1.jsp?i=<%=intPage+1%>;&sqlCon=<%=sqlCon%>;">下一页</a>
    <%}%>    
    </td>
     </tr>
    </table>
    </body> 
    </html> <% 
    //关闭结果集 
    sqlRst.close(); 
    //关闭SQL语句对象 
    sqlStmt.close(); 
    //关闭数据库
    sqlCon.close();
    %>
      

  4.   

    那个下拉菜单 在 ASP中是这样写的!在JSP 中是不是也可以这样写?
    <select name="workdate0" >
                <option><%=DATE%></option>
                <%for i=1 to 60%>
                <option><%=date-i%></option>
                <%next%>
              </select>
      

  5.   

    可以的(如果date是整数),但两者语法不同:
    <select name="workdate0" >
                <option><%=DATE%></option>
                <%for (int i=1; i<=60; i++) {%>
                <option><%=date-i%></option>
                <%}%>
              </select>注意java 是区分大小写的
      

  6.   

    前天晚上不小心把硬盘上的所有数据都弄没了。郁闷啊!什么都没有了!
    数据库服务器要重新配置,以前好不容易弄的一些代码也没了。
    郁闷~!十分感谢楼上的帮忙,我正在重写以前的JSP,我现在正自己做个查询数据库数据的几个页面~!
    有不懂的地方还请楼上的多多指教~!十分感谢你的帮助~!
      

  7.   

    我这个的下一页 为什么不好用啊? 不能点击,也不能到下一页去,估计上一页在下翻之后也不好用~! 这个是不是少了什么代码啊?
    <%@ page contentType="text/html;charset=gb2312"%>
    <% 
    //变量声明 
    java.sql.Connection sqlCon; //数据库连接对象 
    java.sql.Statement sqlStmt; //SQL语句对象 
    java.sql.ResultSet sqlRst; //结果集对象 
    java.lang.String strCon; //数据库连接字符串 
    java.lang.String strSQL; //SQL语句 
    int intPageSize; //一页显示的记录数
    int intRowCount; //记录总数 
    int intPageCount; //总页数 
    int intPage; //待显示页码 
    java.lang.String strPage; 
    int i,j,k; //设置一页显示的记录数 
    intPageSize = 10; //取得待显示页码 
    strPage = request.getParameter("page"); 
    if(strPage==null){
    //表明在QueryString中没有page这一个参数,此时显示第一页数据 
    intPage = 1; 
    } else{
    //将字符串转换成整型 
    intPage = java.lang.Integer.parseInt(strPage); 
    if(intPage<1) intPage = 1; }
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
    String url="jdbc:odbc:sfsh1DB";
    //设置数据库连接字符串 
    strCon = "jdbc:odbc:sfsh1DB";
    //连接数据库 
    sqlCon = java.sql.DriverManager.getConnection(url,"sfis1","sfis1"); 
    //创建SQL语句对象 
    sqlStmt = sqlCon.createStatement(); 
    //获取记录总数 
    strSQL = "select count(*) from sfism4.r105"; 
    sqlRst = sqlStmt.executeQuery(strSQL); sqlRst.next(); //记录集刚打开的时候,指针位于第一条记录之前 
    intRowCount = sqlRst.getInt(1); 
    sqlRst.close(); //关闭结果集 //记算总页数 
    intPageCount = (intRowCount+intPageSize-1) / intPageSize; 
    //调整待显示的页码 if(intPage>intPageCount) intPage = intPageCount; 
    //设置获取数据SQL语句 
    strSQL = "select * from sfism4.r105"; 
    //执行SQL语句并取得结果集 
    sqlRst = sqlStmt.executeQuery(strSQL);
    //将记录指针定位到待显示页的第一条记录上 
    i = (intPage-1) * intPageSize; 
    for(j=0;j<i;j++) sqlRst.next(); %> <html> 
    <head>
    <title>分页显示</title>
    <style type="text/css">
    <!--
    td,body {
    font-family: "Arial", "Helvetica", "sans-serif";
    font-size: 14px;
    }
    -->
    </style></head> <body>
    <table width=770 border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#0066CC" style="border-collapse: collapse">
     <% 
    //显示数据 
    i = 0; 
    while(i<intPageSize && sqlRst.next()){ 
    %>
     <tr> 
      <td><%=sqlRst.getString(1)%></td>
      <td><%=sqlRst.getString(2)%></td>
      <td><%=sqlRst.getString(3)%></td>
      <td><%=sqlRst.getString(4)%></td>
     </tr>
     <% i++; } %>
     <tr> 
      <td colspan=4 align=center> 第<%=intPage%>页 共<%=intPageCount%>页 
    <%if(intPage>1){%> <a href="">上一页</a>
    <%
    }
    %>       
    <%if(i<intPageSize){%> 
    <a href="1.jsp?i=<%=intPage+1%>;&sqlCon=<%=sqlCon%>;">下一页</a>
    <%}%>    
    </td>
     </tr>
    </table>
    </body> 
    </html> <% 
    //关闭结果集 
    sqlRst.close(); 
    //关闭SQL语句对象 
    sqlStmt.close(); 
    //关闭数据库
    sqlCon.close();
    %>