Oracle10g 自动设置时间和日期列

Oracle10g 自动设置时间和日期列,oracle10g,Oracle10g,我创建了一个包含以下列的表 E_id, e_name,e_date,time_in,time_out 在表中插入新值时,我需要自动更新e\u date,time\u in和time\u out列。您可以为列定义默认值。 您需要哪些值 例如,如果您需要Sysdate: CREATE TABLE t (..., INSERT_DATE DATE DEFAULT SYSDATE NOT NULL); 或者,如果需要更新表结构: ALTER TABLE t MODIFY

我创建了一个包含以下列的表

E_id, e_name,e_date,time_in,time_out

在表中插入新值时,我需要自动更新
e\u date
time\u in
time\u out
列。

您可以为列定义默认值。 您需要哪些值

例如,如果您需要Sysdate:

CREATE TABLE t
(...,
INSERT_DATE       DATE      DEFAULT SYSDATE    NOT NULL);
或者,如果需要更新表结构:

ALTER TABLE t
MODIFY (INSERT_DATE       DATE      DEFAULT SYSDATE);
如果需要小数秒,也可以使用SYSTIMESTAMP而不是SYSDATE

但如果您有字符字段,则可以使用以下内容:

DEFAULT TO_CHAR(SYSDATE, 'YYYYMMDD')   -- Date component


列的数据类型是什么?它应该自动更新哪些值?您可以在创建表期间使用DEFAULT子句。您可以在插入或更新行时使用触发器在表列中插入/更新日期。您好,列的数据类型为:-e_id varchar(4),e_name varchar2(40),e_date date,time_in time,time_out time。我想要e_date,time_in和time_out可在我向表中插入任何值时自动更新。这些列可自动获取当前日期和时间Hi,我更新了我的答案,为您提供了一个为字符数据类型定义默认列的示例…如何使用默认的sysdate插入此数据类型的值它将日期设置为time。但我不希望e_date列中有时间。我只希望time in time_in column您不能仅存储时间部分,除非您使用字符数据类型(VARCHAR2或CHAR)。如果使用日期,则具有日期和时间(精度为秒)。如果使用时间戳,也可以指定小数秒。但是,如果您只需要时间部分,您可以(例如)使用VARCHAR2(6)数据类型。使用TO_CHAR(SYSDATE,'HH24MISS')作为默认值,您将只在列中有时间部分,但作为字符数据类型。
DEFAULT TO_CHAR(SYSDATE, 'HH24MISS')   -- Time component