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类型

刚才的有点问题,用下面的,实际用时把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]

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

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

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

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

[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]
试试这个

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

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

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

userid 这个是唯一的?

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

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

获取多条记录。

[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]