SELECT
DISTINCT rc.ID AS ID_ROBOT_CARGA,
ral.CIF AS CIF,
rc.ID_CONTRATO AS REFERENCIA,
CASE
WHEN rc.RESPUESTA_INTERCHANGE = 1 THEN 'SI'
WHEN rc.RESPUESTA_INTERCHANGE = 0 THEN 'NO'
ELSE NULL
END AS POPUP_INTERCHANGE
FROM
ROBOT_CARGA rc
FULL JOIN ROBOT_ALTA_LINEA ral ON
rc.ID = ral.ID_ROBOT_CARGA
WHERE
rc.RESPUESTA_INTERCHANGE = 1
AND rc.FECHA_RESPUESTA_INTERCHANGE > TO_CHAR(TRUNC(SYSDATE, 'day'), 'yyyy-mm-dd hh24:mi:ss'); --FAILING HERE所以我想要的是今天的一天,在一个地方的状态,但是一个错误,或-01861,它一直在抛出,我想是因为SYSDATE。

发布于 2022-01-10 13:20:17
FECHA_RESPUESTA_INTERCHANGE列的数据类型是什么?应该是DATE。
如果是这样的话,那就不要把它比作字符串。SYSDATE是一个返回DATE的函数,所以这只是
and rc.FECHA_RESPUESTA_INTERCHANGE > trunc(sysdate)示例,它表明它工作正常。
设置日期格式(您不必这样做;它是不相关的):
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
Session altered.样本表:
SQL> create table robot_carga as
2 select sysdate - 2 fecha_respuesta_interchange from dual;
Table created.将fecha_respuesta_interchange组合为trunc(sysdate)的查询
SQL> select *
2 from robot_carga
3 where fecha_respuesta_interchange < trunc(sysdate);
FECHA_RESPUESTA_INT
-------------------
08.01.2022 14:35:46
SQL>看见?没有错误。
https://stackoverflow.com/questions/70653024
复制相似问题