【发布时间】:2020-12-28 23:01:04
【问题描述】:
我对 Oracle 数据库非常陌生,我正在尝试将日期 (2020-06-30 0:00:00) 硬编码到下面的查询中,但是我收到以下错误
[valsys_TIMESERIES_VALUE [37]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。
一个 OLE DB 记录可用。来源:“OraOLEDB”Hresult:0x80040E14 描述:“ORA-12801:并行查询服务器 P006 中发出错误信号 ORA-01821: 日期格式无法识别
ORA-02063:VALSYS 的前 2 行”。 OLE DB 记录可用。来源:“OraOLEDB”Hresult:0x80004005 描述:“ORA-12801:并行查询服务器 P006 中发出错误信号
ORA-01821: 日期格式无法识别 ORA-02063: 前 2 行来自 VALSYS"。
"SELECT TS_ID,DATE_UTC,VALUE,CASE WHEN VALUE = 0 THEN '0' ELSE TO_CHAR(VALUE) END VALUE_CONV ,SUBSTITUTE_VALUE
,CASE WHEN SUBSTITUTE_VALUE = 0 THEN '0' ELSE TO_CHAR(SUBSTITUTE_VALUE) END SUBSTITUTE_VALUE_CONV ,MANUAL_VALUE, CASE WHEN MANUAL_VALUE = 0 THEN '0' ELSE TO_CHAR(MANUAL_VALUE) END MANUAL_VALUE_CONV,FEASIBLE
,VERIFIED,APPROVED,VALID_FROM,VALID_UNTIL,LAST_EXPORT,DAY_CET,COMPUTED,MARKER,TASK_UNIT_ID FROM \""+ @[$Project::Oracle_Valsys_Schemaname] + "\".\"VALSYS_TIMESERIES_VALUE\"
WHERE VALID_FROM > to_timestamp('"+ @[User::PreLET] + "', '2020-06-30 0:00:00') "
【问题讨论】:
-
您可以使用时间戳或日期文字,例如
WHERE valid_from > timestamp '2020-06-30 00:00:00'(小时必须为两位数)或WHERE valid_from > date '2020-06-30'。 (如果valid_from不是日期,而是日期时间,那么我宁愿期望>= 而不是>,以免排除午夜。@[User::PreLET]包含什么?to_timestamp应该有日期格式对于第二个参数。例如'yyyy.mm.dd hh24:mi:ss'。 -
请问我该如何投票?非常感谢人......它的工作原理