ORA-01840:日期格式的输入值不够长

时间:2015-06-11 17:49:11

标签: sql oracle timestamp-with-timezone

我试图在oracle中插入一个列,该列位于" TIMESTAMP(6)WITH TIME ZONE"格式。

下面是插入SQL:

INSERT INTO print_temp 
( print_before_tswtz ) 
VALUES 
( 
  TO_TIMESTAMP_TZ( TRUNC(SYSDATE) + INTERVAL '1' DAY -  INTERVAL '1' SECOND ) 
  +   
  NUMTODSINTERVAL('5','DAY') 
) ;

以下是我得到的错误;  错误报告:

  

SQL错误:ORA-01840:日期格式的输入值不够长    01840. 00000 - "输入值不足以构成日期格式"

有人可以帮我解决这个错误吗?谢谢!

1 个答案:

答案 0 :(得分:0)

时间戳保持第二部分,所以你可以使用这样的东西:

INSERT INTO print_temp ( print_before_tswtz ) VALUES (TO_TIMESTAMP_TZ( TRUNC(SYSDATE) + INTERVAL '1' DAY - INTERVAL '1' SECOND||'.000000000' ) +
NUMTODSINTERVAL('5','DAY') ) ;