Plsql 日期检查问题

Plsql 日期检查问题,plsql,oracle-apex,Plsql,Oracle Apex,在Apex应用程序中,我在页面上有一个名为Person的区域。在一个区域内有一个蒙面的日期选择器。我的任务是确认出生日期。因此,出生日期不能少于1900年。在条件部分中,我一直在尝试编写pl/sql表达式: TRUNC(TO_DATE(:P1002_CONTR_BIRTH_DATE, 'MM-DD-YYYY')) > TO_DATE('01.01.1900', 'MM-DD-YYYY') 但它不起作用。我做错了什么?TO_DATE方法是将字符串转换为日期,字符串格式应与format_ma

在Apex应用程序中,我在页面上有一个名为Person的区域。在一个区域内有一个蒙面的日期选择器。我的任务是确认出生日期。因此,出生日期不能少于1900年。在条件部分中,我一直在尝试编写pl/sql表达式:

TRUNC(TO_DATE(:P1002_CONTR_BIRTH_DATE, 'MM-DD-YYYY')) > TO_DATE('01.01.1900', 'MM-DD-YYYY')

但它不起作用。我做错了什么?

TO_DATE方法是将字符串转换为日期,字符串格式应与format_mask相同

截止日期:P1002控制出生日期,'MM-DD-YYYY'>至'01-01-1900','MM-DD-YYYY'

TRUNCTO日期:P1002控制出生日期'MM-DD-YYYY'>至'01.01.1900','MM.DD.YYYY'

还要确保:P1002控制出生日期与格式相同


对于

您将其放置在错误的位置-条件用于决定项目是否将在屏幕上呈现

验证应该放在。。。嗯,很明显

右键单击P1002控制出生日期选择器项 选择创建验证 将其类型设置为返回错误文本的PL/SQL函数 假设您将日期选择器格式掩码设置为MM-DD-YYYY,则使用此代码: 按下提交按钮时,将其设置为激发 或者,更简单的方法是打开日期选择器项的属性调色板,导航到其最小日期属性,并在其中放入例如-120y,这将允许日期高于sysdate-今天120年,Apex将提高

出生日期小于指定的最小日期04-15-1898'

这不完全是1900,但是-你可以很容易地计算出来,对吗?此外,-120y比固定年份1900更灵活


现在您有两个选项,选择一个最适合您的选项。

它不起作用不是可识别的错误消息。会发生什么?您是否得到错误或错误的结果?P1002控制出生日期的数据类型是什么?如果它已经是一个日期,那么你就不需要将它传递到to_date,如果你这样做了,它很可能不会做你想做的事情……注意,在这种情况下,TRUNC是多余的Oracle默认情况下对此非常灵活,通常没有任何帮助;在将字符串转换为日期时,它将愉快地交换句点和破折号。
if to_date(:P1002_CONTR_BIRTH_DATE, 'mm-dd-yyyy') < date '1900-01-01' then
   return ('Error - can not set it to before 01-01-1900');
end if;