DB2 SQL错误:数据库代码= -104,数据库状态=42601,数据库错误代码=12;年月日时时分秒

cedebl8k  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(442)

我尝试使用DB2表的jdbc语句删除其中一行,但出现以下异常
异常错误:DB2 SQL错误:数据库代码= -104,数据库状态=42601,数据库错误代码=12;年月日时时分秒
查询如下

DELETE FROM DATA_TABLE WHERE ((PID_FROM = 'ABC123' AND PID = 'DEF456 ') OR (DEPT_FROM = '' AND DEPT_TO = ''))  AND  ST_FROM = '2022-07-28 12:44:37.464629428' AND ST_TO = '2022-07-28 12:44:37.464629428'

在DB2表中,ST_FROM和ST_TO的数据类型是时间戳。

yhxst69z

yhxst69z1#

问题是关于数据类型转换:将字符串(此虚拟表TS列)设置为时间戳。
字符串常量必须用单引号引起来。
如果您有如范例中所示的时间戳记字串表示法,您可以使用如TS1和TS2的运算式,而不需要格式规格,而且所有3个运算式都会传回相同的结果。

SELECT 
  S::TIMESTAMP                                  AS TS1  -- since V 11.1
, TIMESTAMP (S)                                 AS TS2
, TO_TIMESTAMP (S, 'YYYY-MM-DD HH24:MI:SS.FF9') AS TS3
FROM
(
  VALUES '2022-07-28 12:44:37.464629428'
) T (S)

相关问题