首页 > 解决方案 > Oracle - 如何在不格式化的情况下将 Java 项目中的时间戳作为字符串插入

问题描述

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

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

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

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

标签: javaoraclesql-insert

解决方案


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

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

所以-日期和时间之间没有,:要分开小时、分钟和秒。我相信这同样适用于 DB2。

如果您通过 JDBC 进行插入,则不应传递字符串开头。使用 a并传递一个或至少PreparedStatement一个实例java.time.LocalDateTimejava.sql.Timestamp


推荐阅读