簡體   English   中英

如何將Java字符串轉換為Teradata DATE和時間戳

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

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