如何在字段中转换日期以便在WHEN-VALIDATE-ITEM触发器上进行比较

问题描述 投票:1回答:1

我正在研究Oracle Forms应用程序。我有一个名为DOB的字段,其日期格式为08-May-1890。我想在18900508触发器上将其转换为WHEN-VALIDATE-ITEM进行比较。

我对此很陌生,不知道从哪里开始。以下是我目前正在使用的代码。

BEGIN
    --Convert date from 08-May-1890 to 1890508
    IF( TO_CHAR(:EMPLOYEE.DOB,'YYYY-MON-DD') < 20180927)THEN
        --Do Something in here
        RAISE FORM_TRIGGER_FAILURE;
    END IF;
END;
plsql oracle11g oracleforms
1个回答
3
投票

如果employee.dob是字符串,则将其转换为date,然后转换为string,并且比较值必须是字符串:

BEGIN
    --Convert date from 08-May-1890 to 1890508
    IF( TO_CHAR(TO_DATE(:EMPLOYEE.DOB,'YYYYMONDD', 'NLS_DATE_LANGUAGE = English'),'YYYYMMDD') < '20180927' )THEN
        --Do Something in here
        RAISE FORM_TRIGGER_FAILURE;
    END IF;
END;

如果employee.dob已经是日期,并且与字符串进行比较:

BEGIN
    --Convert date from 08-May-1890 to 1890508
    IF( TO_CHAR(:EMPLOYEE.DOB,'YYYYMMDD') < '20180927' )THEN
        --Do Something in here
        RAISE FORM_TRIGGER_FAILURE;
    END IF;
END;

但是,如果employee.dob是日期列,则不要将其转换为字符串,而是将其与日期进行比较

BEGIN
    --Convert date from 08-May-1890 to 1890508
    IF :EMPLOYEE.DOB < to_date('20180927','YYYYMMDD') )THEN
        --Do Something in here
        RAISE FORM_TRIGGER_FAILURE;
    END IF;
END;
© www.soinside.com 2019 - 2024. All rights reserved.