【问题标题】:如何以 oracle apex 形式指定日期数据类型的日期格式
【发布时间】:2022-01-23 17:02:27
【问题描述】:

我想为 Oracle Apex 19.2 表单中的日期列指定特定格式,以限制用户以特定格式输入数据。例如,我希望表单的此查询有效:

Select phone_no, call_date, to_char(call_time, 'HH12:MI:SS AM') 
FROM called_no;

注意:call_datecall_time 具有相同的数据类型,即 date。我只有call_time 专栏的问题。

【问题讨论】:

    标签: oracle oracle-apex oracle-apex-19.2


    【解决方案1】:

    好吧,call_time 项目的格式掩码将如您所说:hh12:mi:ss am

    如果你还没有这样做,那就去做吧。如果你这样做了,你遇到了什么问题?


    但是,从我的角度来看,您做错了 - 您应该只使用一列:call_date,其数据类型为 date,并在 Apex 中“按原样”使用它。它(项目)将接受所需格式的完整日期和时间,例如dd.mm.yyyy hh12:mi:ss am.

    因为,如果您使用两个列/项目,您会遇到call_time 列的date 组件错误 的问题。看看:

    SQL> alter session set nls_date_Format = 'dd.mm.yyyy hh12:mi:ss am';
    
    Session altered.
    
    SQL> select sysdate,
      2         to_date('05:33:12', 'hh12:mi:ss pm') right_now
      3  from dual;
    
    SYSDATE                RIGHT_NOW
    ---------------------- ----------------------
    22.12.2021 05:34:19 PM 01.12.2021 05:33:12 AM
    -----                  -----
    today                  see this? Date component is truncated to 1st of current month
    

    插图:

    【讨论】:

    • 如果我只使用日期数据类型的 call_date 列,我不能在一个列中同时插入日期和时间,因为 apex 只允许我插入日期而不是时间部分将该字段的类型设置为日期选择器。
    • 我不再有 Apex 19,但是 - 在最近的版本中,Apex 允许您设置 show time 属性(屏幕截图上为 1),这会导致显示时间组件在日期选择器项目中(屏幕截图上的 2);单击时,以免您选择时间。 但是:即使日期选择器不提供时间,也没有人阻止您手动输入日期和时间。
    • 非常感谢。我以前没有见过apex的那个功能。所以我必须更新我的顶点,这将真正解决我的问题。
    • 不客气。
    猜你喜欢
    • 2016-02-05
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2019-09-16
    • 2016-01-24
    • 1970-01-01
    • 2019-06-03
    相关资源
    最近更新 更多