【问题标题】:Insert sysdate with a fixed timestamp into table column将具有固定时间戳的 sysdate 插入表列
【发布时间】:2019-04-22 05:54:36
【问题描述】:

关于如何将具有固定时间戳的 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: (full) year must be between -4713 和 +9999,且不为 0 01841. 00000 - “(完整)年份必须介于 -4713 和 +9999 之间,并且不能为 0” *原因:非法输入年份 *Action:在指定范围内输入年份

我们将不胜感激。 :)

【问题讨论】:

标签: sql oracle


【解决方案1】:

您可以将TRUNC 函数与TO_DSINTERVALINTERVAL 小时一起使用以使用固定时间戳。

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

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

【讨论】:

    【解决方案2】:
    select TO_TIMESTAMP(TO_CHAR(sysdate, 'YYYYMMDD')  || ' 19:00:00', 'YYYYMMDD HH24:MI:SS') from dual;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-02
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多