longdanbin
longdanbin
2010-03-16 17:02

sql语句的日期比较问题

已采纳
Date   d   =   new   Date();   
        java.text.SimpleDateFormat   dateFormat   =   new   java.text.SimpleDateFormat("yyyy-MM-00");  
        java.text.SimpleDateFormat   dateFormat1   =   new   java.text.SimpleDateFormat("yyyy-(MM+1)-00"); 
        String s = dateFormat.format(d); 
        String s1 = dateFormat1.format(d);

String sql1="select * from wage where userid = ? and time >= ? and time < ? ";


pstmt = conn.prepareStatement(sql1);
            pstmt.setInt(1, 1);
            pstmt.setString(2, s);
            pstmt.setString(3, s1);

 想求教各位高手,我获取到当前时间后,通过格式化截取获得了年和月,怎么取得数据库表中相同月份的数据。我写了点代码,但是行不通,取不到数据,请各位高手帮我看看,简略的代码附上。 我数据表中time是 timestamp类型

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • iteye_13500 iteye_13500 11年前

    刚才的有点问题,用下面的,实际用时把d换成你取出来的Date

    [code="java"]
    Date d = new Date(99, 4, 5);

        Date sd = new Date(d.getYear(), d.getMonth()+1, 0);
        java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
                "yyyy-MM-00");
        String s1 = dateFormat.format(sd);
        System.out.println(s1);
    

    [/code]

    点赞 评论 复制链接分享
  • iteye_13500 iteye_13500 11年前

    [quote]本人是菜鸟,怎么让它进行整数相加变成04呢?

    如果是12月 相加了之后会不会成13?[/quote]

    这样做来计算s1吧:

    [code="java"]
    Date d = new Date();

    // 获取到了d

    Date sd = new Data(s.getTime()+86400)
    java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyy-MM-00");
    String s1 = dateFormat1.format(sd);

    [/code]

    点赞 评论 复制链接分享
  • iteye_13500 iteye_13500 11年前

    [quote]if (rs.next()){。。。。}[/quote]

    使用
    while (rs.hasNext()) {
    ...
    }

    获取多条记录。

    点赞 评论 复制链接分享
  • lzj0470 lzj0470 11年前

    userid 这个是唯一的?

    点赞 评论 复制链接分享
  • iteye_13500 iteye_13500 11年前

    s1需要是 2010-04-00 穿进去才能正常工作。

    点赞 评论 复制链接分享
  • iteye_13500 iteye_13500 11年前

    [code="java"]s和s1,打印出来的结果是:
    2010-03-00
    2010-(03+1)-00 [/code]

    哦,对了,应该先整数相加,再格式化字符串。

    点赞 评论 复制链接分享
  • lzj0470 lzj0470 11年前

    [code="java"]
    pstmt = conn.prepareStatement(sql1);

    pstmt.setInt(1, 1);

    pstmt.setString(2, '2009-07-22 00:15:42');

    pstmt.setString(3, '2009-07-22 00:15:42');

    [/code]
    试试这个

    点赞 评论 复制链接分享
  • iteye_13500 iteye_13500 11年前

    你把s和s1打印出来,看正确吗?

    如果数据库里的格式是标准的, SQL语句是可以工作的。

    点赞 评论 复制链接分享
  • iteye_13500 iteye_13500 11年前

    1 你数据库里的日期用的是字符格式,是标准格式吗?
    例如: 2009-01-09 会不会保存成 2009-1-9

    2 你打印出执行的select语句看看

    点赞 评论 复制链接分享

相关推荐