[英]How to convert Java String to Teradata DATE and Timestamp
我的Java代碼生成兩個Strings
:
String myDate = "10/10/2013";
String myTimestamp = "2013-10-09 14:30:20";
我需要將這些值提供給prepared statement
,以便可以使用jdbc
將它們上載到Teradata
這是我嘗試的:
String in = " INSERT INTO " + myTab + " VALUES (?,?) ";
PreparedStatement prst = null;
prst = connection.prepareStatement(in);
// add date
prst.setDate(1, (Date) new SimpleDateFormat("MM/dd/yyyy").parse(myDate));
//add timestamp
prst.setDate(2, (Date) new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(myTimestamp));
上面的代碼可以編譯,但是不起作用。 我收到一個empty string
錯誤。 如何將String
轉換為Teradata types DATE, TIMESTAMP
,以將其添加到准備好的語句中?
您可以使用需要long
時間的java.sql.Date
構造函數 ,方法是使用Date#getTime()
並從
prst.setDate(1, (Date) new SimpleDateFormat("MM/dd/yyyy").parse(myDate));
像
prst.setDate(1, new java.sql.Date(new SimpleDateFormat("MM/dd/yyyy")
.parse(myDate)).getTime());
另一個
prst.setDate(2, new java.sql.Date(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.parse(myTimestamp)).getTime());
嘗試這個:
prst.setDate(1, new java.sql.Date(new SimpleDateFormat("MM/dd/yyyy").parse(myDate).getTime()));
這將轉換您的日期,然后創建一個新的sqlDate。
prst.setTimestamp(2, new java.sql.Timestamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(myTimeStamp).getTime());)
對於時間戳,請使用setTimeStamp而不是setDate。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.