如何将时间戳传递给 Oracle 函数?

How to pass Timestamp to Oracle Function?

我有一个 table 并在其中存储日期值,我需要获取该值并将其作为参数传递给函数。但是每当我尝试执行我的代码时,它都会抛出

之类的错误
ORA-00936: missing expression.

以下是我的代码示例:

SELECT refno, 
       Tatcalculate(to_timestamp(SELECT h_modified_date
                                   FROM TPADETAILS
                                  WHERE refno = 'WOC0021946','DD/MM/YYYY HH24:MI:SS'))
 FROM Table1;

Table1 是我的 table,h_modified_date 是专栏。 Tatcalculate() 是函数。

当我 运行 内部查询时,它从 table 返回日期值,但是当我执行上面的完整查询时,它会抛出错误。
任何人请帮助我解决这个。

给出列名

SELECT refno, Tatcalculate(to_timestamp(SELECT h_modified_date FROM TPADETAILS WHERE refno='WOC0021946','DD/MM/YYYY HH24:MI:SS')) as TAT FROM Table1;

我会把 to_timestamp() 放在列名周围,而不是放在 select 语句周围。

此外,您需要将 select 语句括在它自己的括号中。因此:

SELECT refno, Tatcalculate((SELECT to_timestamp(h_modified_date,'DD/MM/YYYY HH24:MI:SS') FROM TPADETAILS WHERE refno='WOC0021946'))
FROM Table1;

ETA:鉴于 tatcalculate 参数是 DATE 数据类型并且 h_modified_date 列也是 DATE 的额外信息,完全不需要进行任何数据类型转换。因此,查询变为:

SELECT refno, Tatcalculate((SELECT h_modified_date FROM TPADETAILS WHERE refno='WOC0021946'))
FROM Table1;

试试这个......

SELECT refno, Tatcalculate(to_timestamp((SELECT  to_char(h_modified_date,'DD/MM/YYYY HH24:MI:SS') FROM TPADETAILS WHERE refno='WOC0021946'),'DD/MM/YYYY HH24:MI:SS'))
FROM Table1;