oracle sql调用函数后没有找到数据

时间:2018-01-12 10:00:19

标签: sql function select dml

我有实现功能的任务。 我创建了函数get_month,以便从日期string获取日期格式为'DD/MM/YYYY HH24:MM:SS'的月份,这就是代码。

create or replace FUNCTION GET_MONTH(tgl DATE) RETURN VARCHAR2
IS mnth VARCHAR2(20);
BEGIN
    mnth := TO_CHAR(to_date(tgl, 'DD/MM/YYYY HH24:MI:SS'), 'Month');
    RETURN UPPER(mnth);
END;​

我使用查询:

SELECT GET_MONTH('12/02/2018 04:12:12') FROM dual;

及其作品FEBRUARY

我有一个表A,其中包含MNTH列和COST。表A中的数据是大写的,从1月到12月的大写,并且成本中的数据全部为0.

当我尝试进行查询时:

SELECT cost 
FROM A 
WHERE mnth = GET_MONTH('12/02/2017 12:12:12'); 

它表示没有选择任何行,但是当我使用

SELECT cost FROM A WHERE mnth = 'FEBRUARY';

结果0.我不知道为什么功能不起作用。谁知道为什么? 对不起我的英文

0 个答案:

没有答案