如何在APEX ORACLE中正确存储包含时间的DATE?

问题描述 投票:0回答:1

我正在创建一个特定的应用程序,我需要在其中设置订单的开始和结束时间。用于存储日期的 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 文档中所述,因此我可以使用它来查找不会与其他订单时间重叠的值。

date oracle-apex
1个回答
0
投票

要在 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'));

© www.soinside.com 2019 - 2024. All rights reserved.