将具有固定时间戳记的sysdate插入表列

时间:2019-04-22 05:54:36

标签: sql oracle

关于如何将具有固定时间戳记的sysdate值插入列的任何建议。下面是插入查询:

INSERT INTO
    TABLE1 (COLUMN1, COLUMN2, COLUMN3, COLUMN4, COLUMN5, COLUMN6, COLUMN7)

VALUES      
('VALUE1', 'VALUE2', 'VALUE3', 'VALUE4', SYSDATE, 
TO_TIMESTAMP('SYSDATE 19:00:00','YYYYMMDD HH:MI:SS'),SYSDATE);

目标是获取当前的sysdate并将其插入具有固定时间戳记的数据库中。值:TO_TIMESTAMP('SYSDATE 19:00:00','YYYYMMDD HH:MI:SS')返回以下oracle错误:

  

sql错误报告-SQL错误:ORA-01841 :(完整)年份必须介于   -4713和+9999,而不是0   01841。00000-“(完整)年份必须在-4713到+9999之间,并且不能为0”   *原因:输入的年份不合法   *操作:在指定范围内输入年份

建议将不胜感激。 :)

2 个答案:

答案 0 :(得分:2)

您可以在TRUNCTO_DSINTERVAL小时内使用INTERVAL函数来使用固定的时间戳。

CAST ( TRUNC(SYSDATE) + TO_DSINTERVAL('00 '||'19:00:00') as timestamp)

OR

CAST ( TRUNC(SYSDATE) + INTERVAL '19' HOUR as timestamp)

答案 1 :(得分:0)

select TO_TIMESTAMP(TO_CHAR(sysdate, 'YYYYMMDD')  || ' 19:00:00', 'YYYYMMDD HH24:MI:SS') from dual;