我正在创建一个特定的应用程序,我需要在其中设置订单的开始和结束时间。用于存储日期的 DATE 数据类型格式会出现问题。 APEX ORACLE 文档指出:
DATE 是最古老且使用最广泛的数据类型。虽然名称是“DATE”,但它还存储有关时间的信息。
我面临的问题是,无论我如何尝试存储它,当手动查看表“数据”或使用采石场。
传递的值为 10-MAY-2024 10:00 并通过
转换BEGIN
DECLARE
toDate DATE;
BEGIN
toDate := TO_DATE(:START_PICKER, 'DD-MON-YYYY HH24:MI');
INSERT INTO MISENE VALUES (toDate);
END;
END;
当存储为 DATE 时,它返回前面提到的 05/10/2024。 当存储为 TIMESTAMP 时,它返回 10-MAY-24 10.00.00.000000000 AM,我可以使用它,但它很难使用,因为我需要使用 24 小时格式。 当存储为 VARCHAR2 时,它返回 5/10/2024 。
如果不使用转换
TO_DATE
或强制 toDate DATE;
,它会返回错误,指出存在非数值,或者在 VARCHAR2 的情况下,返回原始值 (2024 年 5 月 10 日 10:00)。
期望的结果是它存储在包含时间的 DATE 数据类型下(如果可能的话,24 小时格式),如 ORACLE 文档中所述,因此我可以使用它来查找不会与其他订单时间重叠的值。
要在 Oracle APEX 中正确存储日期和时间,您通常会使用 DATE 数据类型,或者最好使用 TIMESTAMP 数据类型,因为它同时包含日期和时间部分。具体方法如下:
使用 TIMESTAMP 数据类型: 创建表:您可以创建一个表,其中包含 TIMESTAMP 类型的列来存储日期和时间。
CREATE TABLE your_table_name (
id NUMBER PRIMARY KEY,
date_time_col TIMESTAMP );
插入数据: 然后您可以使用适当的日期和时间格式将数据插入此表中。
INSERT INTO your_table_name (id, date_time_col)
VALUES (1, TO_TIMESTAMP('2024-05-09 14:30:00', 'YYYY-MM-DD HH24:MI:SS'));