【问题标题】:Set timestamp in Oracle在 Oracle 中设置时间戳
【发布时间】:2012-12-06 03:17:50
【问题描述】:

我在 Oracle SQL 查询中使用准备好的语句。我有问题不知道如何解决。

我想像这样设置时间戳:

ps.setTimestamp(36, null); 

问题是我不知道要设置什么参数才能在 Oracle 中执行时间戳?在我的情况下,我必须如何替换 null?

【问题讨论】:

  • 要么是一个包,在这种情况下代码是什么,要么是另一种语言,在这种情况下它是什么?
  • 这段代码将在Java中使用。
  • 您需要发布更多代码。我假设您正在使用 setTimestamp - docs.oracle.com/javase/1.4.2/docs/api/java/sql/…, java.sql.Timestamp) 将参数添加到准备好的语句中。声明是什么?这里的第36个索引表示是你要加的第36个参数?这是正确的吗?
  • 36 个参数?!?有没有考虑过JPA?此外,当您有 java 问题时,您需要学习查阅 API。正如@JacobASeverson 的回答所指出的那样,API 可以快速回答您的问题。这应该始终是您提出任何 java 问题的第一个地方。

标签: java sql oracle jdbc oracle11g


【解决方案1】:

此示例将Timestamp 值设置为当前时间(精度为毫秒):

Timestamp ts = new Timestamp(new Date().getTime());
ps.setTimestamp(36, ts);

如果您还需要纳秒,您可以单独设置:

Timestamp ts = new Timestamp(new Date().getTime());
ts.setNanos(12345);
ps.setTimestamp(36, ts);

【讨论】:

    【解决方案2】:

    如果您查看 PreparedStatement 类中的 method,您需要创建一个 TimeStamp 对象,您将使用该对象替换您的 null。

    【讨论】:

    • +1 用于将 OP 引用到 API(这使得答案显而易见)。在尝试解决 Java 问题时,这应该始终是第 1 步!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 2016-08-21
    • 2018-05-24
    • 1970-01-01
    相关资源
    最近更新 更多