sql—如何在oracle数据库中插入日期和时间?

stszievb  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(389)

我的事务表中有一列名为txdate,另一列名为txtime。我很难理解“截止日期”函数是如何工作的。从我所做的研究来看,下面的陈述似乎是正确的。有人能帮我理解如何在oracle中添加日期和时间吗。干杯

INSERT INTO TRANSACTION 
VALUES(
    TxNbr_Seq.nextval, 
    'X', 
    1000001, 
    123.45, 
    TO_DATE('2019/05/1', 'yyyy/mm/dd'), 
    TO_DATE('12:00', 'HR:MI'), 
    '101'
);
o2gm4chl

o2gm4chl1#

不要将日期和时间组件存储在单独的表中。
首先,甲骨文没有 time 数据类型:它只有 date 存储日期和时间组件的数据类型。
第二,这样做通常效率低下。迟早,您会连接日期和时间组件,以便能够执行正确的日期比较。将两者存储在一起要简单得多,如果需要单独显示,则使用日期函数。
所以,只需要一个列来存储日期和时间,比如 txDate ,然后:

INSERT INTO TRANSACTION -- better enumerate the target columns here
VALUES(
    TxNbr_Seq.nextval, 
    'X', 
    1000001, 
    123.45, 
    TO_DATE('2019/05/01 12:00', 'yyyy/mm/dd hh24:mi'),
    '101'
);

请注意,oracle使用 hh24 (或 hh12 ,或 hh 如果使用am/pm格式),则指定小时格式而不是 hr .
如果需要分别显示日期和时间,可以使用日期格式功能:

to_char(txDate, 'yyyy/mm/dd') txDay,
to_char(txDate, 'hh24:mi'   ) txTime

相关问题