簡體   English   中英

Java-創建Oracle日期字段

[英]Java - creating an oracle date field

我有一個Oracle Date類型,需要在其中插入當前日期。

我正在使用Java生成此日期,但是到目前為止,我嘗試過的所有操作都會產生以下錯誤:

java.sql.SQLException: ORA-01843: not a valid month

誰能建議Java代碼生成正確的日期?

更新:

數據庫中的日期看起來像11-DEC-06

因此,我嘗試了以下方法:

Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("d-MMM-yy");
String date = sdf.format(cal.getTime());

這不起作用

我建議不要構建一個字符串查詢(我猜你正在這樣做),而應該使用PreparedStatement,它通常更容易(尤其是像這樣的事情)而且更安全:

String rowToUpdate = "foo";
PreparedStatement ps = myConnection.prepareStatement(
      "UPDATE my_table SET date_field=? WHERE id=?");
Calendar cal = Calendar.getInstance();
java.sql.Date sqlDate = new java.sql.Date(cal.getTime().getTime());
ps.setDate(1, sqlDate);
ps.setString(2, rowToUpdate);
int updated = ps.executeUpdate();

根據您的要求,使用java.sql.Date或java.sql.Timestamp。

java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());

如果要使用日期的字符串版本進行查詢,則可能需要添加Oracle to_date函數。 您可以這樣做(注意SimpleDateFormat中的多余d)

Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy");
String date = sdf.format(cal.getTime());

然后在查詢中

String query = "select * from table where date_column=to_date('" + date +"','dd-Mon-yy')";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM