2013-01-07 53 views
0

我對MySQL數據庫中的Date添加日期有疑問。 以下是我的代碼:是否可以在Java中調用DATE_ADD()並將該值存儲在臨時日期變量中?

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」。

+0

我實際上並沒有明白你的目標是什麼,但據我所知,在SQL中,如果你有「28-12-2000」的日期值作爲X,而你想插入第二天只是:X + 1 – DmitryK

回答

0

如果從TMP1表的日期是28-12-2000然後執行與DATE_ADD()插入查詢後,會發生什麼情況是,13個新的刀片正在發生,但所有這些刀片是「29-12-2000 」。

因爲這正是你所要求的。你的INSERT語句:

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

由於read.getDate在循環沒有改變,相同的值被插入在每一個互爲作用。

而不是"Interval 1 DAY",使用"Interval " + i + " Day"應插入不同的日子。那是你在找什麼?

+0

感謝兄弟... 我想到的是,我做到了,但忘了放+號,並且出現了一個錯誤,如不兼容的類型。 謝謝。你救了我一小時。 –

+0

沒有工作。沒有錯誤,但沒有更新任何內容。 –

+0

這不太可能,它可能是你的代碼中的一些其他錯誤?我建議你單步執行程序,將參數'executeUpdate'分配給'String'並在調用'executeUpdate'之前將其打印出來並在交互式sql會話中執行 –

相關問題