是否可以在Java中调用DATE_ADD()并将值存储在临时日期变量中?

时间:2013-01-07 23:54:52

标签: java mysql date

我对在MySQL数据库中添加Date天数表示怀疑。 以下是我的代码:

res=stat.executeQuery("select st_date from tmp1 where st_date = '"+t1.getText()+"'");
while(res.next())
{
    System.out.println(res.getDate(1));
    int i=0;
    while(i<14)
    {
        statement.executeUpdate("Insert into datetab values(DATE_ADD('"
            +res.getDate("st_date")+"',INTERVAL 1 DAY),'"+tempname+"')");
        i=i+1;
    }
}

datetab表中的所有更新都会发生,但存在问题。我将用一个例子来解释这个问题。如果来自tmp1表的日期是28-12-2000,那么在用date_add()执行插入查询之后,会发生13个新插入,但所有这些插入都是“29-12-2000”。 / p>

1 个答案:

答案 0 :(得分:0)

  

如果来自tmp1表的日期是28-12-2000然后在使用date_add()执行插入查询之后,会发生13次新插入,但所有这些插入都是“29-12-2000”。 / p>

因为这正是你所要求的。您的插入语句是:

"Insert into datetab values(DATE_ADD('" + res.getDate("st_date") + 
    "',INTERVAL 1 DAY),'" + tempname + "')"

由于read.getDate在循环中没有变化,因此每次交互都会插入相同的值。

使用"Interval 1 DAY"代替"Interval " + i + " Day"应该插入不同的日期。那是你在找什么?