如何在 Oracle 数据库中插入日期和时间?
How to insert date and time in Oracle databases?
我的 TRANSACTION table 中有一列名为 TxDate,另一列名为 TxTime。我无法理解 TO_DATE 函数的工作原理。根据我所做的研究,以下陈述看起来是正确的。有人可以帮助我了解如何在 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'
);
不要将日期和时间组件存储在单独的表中。
首先,Oracle 没有 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
我的 TRANSACTION table 中有一列名为 TxDate,另一列名为 TxTime。我无法理解 TO_DATE 函数的工作原理。根据我所做的研究,以下陈述看起来是正确的。有人可以帮助我了解如何在 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'
);
不要将日期和时间组件存储在单独的表中。
首先,Oracle 没有 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