【问题标题】:How to convert Java String to Teradata DATE and Timestamp如何将 Java 字符串转换为 Teradata 日期和时间戳
【发布时间】: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


【解决方案1】:

您可以使用带有longjava.sql.Date constructor,通过使用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());

【讨论】:

  • 使用 java.sql.TimeStamp 作为你的时间戳看看我上面的帖子。
  • 我在 brso05 上面的答案中添加了 prst.setDate 和 prst.setTimestamp 尝试复制和粘贴我应该工作的内容。
【解决方案2】:

试试这个:

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。

【讨论】:

    猜你喜欢
    • 2020-09-23
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2016-09-15
    相关资源
    最近更新 更多