当我从输入中为时间戳字段提供 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/