java - Oracle - 如何在不格式化的情况下将 Java 项目中的时间戳插入为字符串

标签 java oracle sql-insert

在 spring 项目中有一个 sql 数据,它将值插入到 oracle 数据库中。如果我尝试插入时间戳,我会收到 ORA 异常(不是有效的月份)。

INSERT INTO TAB (colTimestamp)
VALUES ('2020-05-07-10.05.05.301011')

为什么这不是一个有效的月份?

DB2没有问题。那么我应该以哪种格式插入时间戳?我也尝试过 2019-05-05 10:10:10 但我得到了同样的异常 如何插入时间戳? oracle默认的时间戳格式是什么?

最佳答案

您需要使用采用 ISO 格式格式化的正确时间戳文字:

timestamp '2020-05-07 10:05:05.301011'

因此,日期和时间之间没有 -,也没有 : 来分隔小时、分钟和秒。我相信同样的方法也适用于 DB2。

如果您通过 JDBC 进行插入,则不应首先传递字符串。使用 PreparedStatement 并传递 java.time.LocalDateTime 的实例或至少 java.sql.Timestamp

关于java - Oracle - 如何在不格式化的情况下将 Java 项目中的时间戳插入为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59447607/

相关文章:

java - 如何在 selenium 的 select2 下拉列表中选择动态值

java - 不确定如何捕获和重新分配类中的合成成员

java - 从四叉树中提取元素

java - 基于外键的增量字段(JPA、Hibernate、Oracle DB)

MySQL:如果多个值不存在,则插入多个值,但需要多列检查

java - 如何使用具有多个重复键值或其他替代方法的二叉树

sql - Oracle SQL 组按 10 分钟时间间隔的行计数

oracle - Xquery 转换为日期不返回行

php - 使用多个 SQL 调用插入大型 CSV 太慢

javascript - 使用 HTML/PHP/AJAX 将行插入数据库