【发布时间】:2014-12-06 02:11:18
【问题描述】:
我的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 以便将它们添加到准备好的语句中?
【问题讨论】:
-
您的代码应该可以将其转换为
Date(实际上 JDBC 驱动程序会转换它)。哪一行给了你这个错误? -
“空字符串错误”确切是什么意思?我预计会出现异常,因为您尝试将
java.util.Date转换为java.sql.Date。请注意,由于"?,?"部分,您的代码无法编译开始......基本上,您的SQL 不是有效的字符串文字。 (目前还不清楚为什么你有引号......) -
谢谢。我得到
java.util.Date cannot be cast to java.sql.Date当我删除演员(Date)它根本不编译 -
对不起,这是一个错字。 代码运行良好。我为
INTEGER, DECIMAL VARCHAR测试了它。 但我不知道如何将java Strings转换为sql type DATE and TIMESTAMP
标签: java jdbc prepared-statement teradata