Plsql 如何从字段转换日期,以便在WHEN-VALIDATE-ITEM触发器上进行比较
我正在开发Oracle表单应用程序。我有一个名为Plsql 如何从字段转换日期,以便在WHEN-VALIDATE-ITEM触发器上进行比较,plsql,oracle11g,oracleforms,Plsql,Oracle11g,Oracleforms,我正在开发Oracle表单应用程序。我有一个名为DOB的字段,其日期格式为08-May-1890。我想将其转换为WHEN-VALIDATE-ITEM触发器上的18900508,以进行比较 我对这个很陌生,不知道从哪里开始。下面是我目前正在使用的代码 BEGIN --Convert date from 08-May-1890 to 1890508 IF( TO_CHAR(:EMPLOYEE.DOB,'YYYY-MON-DD') < 20180927)THEN
DOB
的字段,其日期格式为08-May-1890
。我想将其转换为WHEN-VALIDATE-ITEM
触发器上的18900508
,以进行比较
我对这个很陌生,不知道从哪里开始。下面是我目前正在使用的代码
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;
开始
--将日期从1890年5月8日转换为1890508
如果(TO_CHAR(:EMPLOYEE.DOB,'YYYY-MON-DD')<20180927,则
--在这里做点什么
提出形式(触发)(失效);;
如果结束;
结束;
如果employee.dob是字符串,请将其转换为日期,然后转换为字符串,比较值必须是字符串:
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;
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;
开始
--将日期从1890年5月8日转换为1890508
如果(TO_CHAR(TO_DATE(:EMPLOYEE.DOB,'yyyyymond','NLS_DATE\u LANGUAGE=English'),'yyyyymmdd')<'20180927'),则
--在这里做点什么
提出形式(触发)(失效);;
如果结束;
结束;
如果employee.dob已经是日期,并与字符串进行比较:
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;
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;
开始
--将日期从1890年5月8日转换为1890508
如果(TO_CHAR(:EMPLOYEE.DOB,'yyyyymmdd')<'20180927'),则
--在这里做点什么
提出形式(触发)(失效);;
如果结束;
结束;
但是如果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;
开始
--将日期从1890年5月8日转换为1890508
如果:EMPLOYEE.DOB<截止日期('20180927','yyyyymmdd'),则
--在这里做点什么
提出形式(触发)(失效);;
如果结束;
结束;
我把赌注押在第三个例子上:DOB
可能是s日期数据类型字段。是的,:DOB是日期字段。你的解决方案对我有用,谢谢。