java - SQLCODE -181 日期时间值的字符串表示不是有效的日期时间值

标签 java database db2

当我从输入中为时间戳字段提供 0001-01-01 00:00:00.000000 时,我得到“日期时间值的字符串表示不是有效的日期时间值”。但是,当我将 0001 更改为 0002 作为输入的时间戳字段的 0002-01-01 00:00:00.000000 时,我的代码正在运行很好,没有任何错误。为什么会这样? Java 是否不支持时间戳的 0001-01-01 00:00:00.000000 值?

我正在使用 DB2 作为我的数据库。

最佳答案

在 DB2 中,SQLCODE SQL0181 表示给定的表示无效

db2 ? sql0181

但是,当我在 DB2 中写入您的日期时,它会接受它:

db2 "values timestamp('0001-01-01 00:00:00.000000')"

1
--------------------------
0001-01-01 00:00:00.000000

  1 record(s) selected.

但是,当我输入无效日期(例如 13 个月)时,它会返回您的错误代码

db2 "values timestamp('0001-13-01 00:00:00.000000')"

1
--------------------------
SQL0181N  The string representation of a datetime value is out of range.

我认为您遇到了与提供的日期时间不对应的语言环境和区域设置问题。

运行这条命令,然后开始修改日期

db2 "values current timestamp"

表 6. 日期时间限制

  • 最小的 TIMESTAMP 值 0001-01-01-00.00.00.000000000000
  • 最大 TIMESTAMP 值 9999-12-31-24.00.00.000000000000

http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0001029.html

关于java - SQLCODE -181 日期时间值的字符串表示不是有效的日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23242000/

相关文章:

java - 如何使图像变形?

mysql - 更正此ERD这些部分的最有效方法是什么?

java - 如何在JSP中动态更改月份?

Java类定义: what does "<>" mean?

database - 验证存储过程参数以强制执行参照完整性约束

java - 连接池不适用于通过 UCP 的 DB2 数据库

c# - 如果在 DB2 中超过分配的时间,则终止 SQL 查询执行

sql - DB2中的SQL语句有长度限制吗?

java - 由于连接方在一段时间后没有正确响应而导致连接尝试失败的异常

mysql - 使用MYSQL防止用户多次加入调查