繁体   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