0

我想为 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专栏的问题。

4

1 回答 1

1

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

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


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

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

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

插图:

在此处输入图像描述

于 2021-12-22T16:36:01.490 回答