【发布时间】:2015-03-24 06:52:48
【问题描述】:
我需要以这种格式在此列中保存日期时间,然后如果我从 GAMES 中写入 select TIME,它将以这种格式显示。但这是错误的。你能帮帮我吗?
create table GAMES (
CIS_HRY INTEGER not null,
NAZEV VARCHAR2(30) not null,
Date DATE NOT NULL FORMAT 'YYYY-MM-DD',
TIME DATE NOT NULL FORMAT 'HH24: MI: SS',
POPIS CLOB,
constraint PK_GAMES primary key (CIS_HRY)
);
【问题讨论】:
-
您使用日期等原生格式保存日期/时间值。您可以使用
to_char()将它们转换为字符串,以获取您在查询中需要的表示形式。 -
对不起,对我来说可以说更愚蠢吗?当我转换它?每次如果我想选择日期?或者它可以永久转换。
-
您可以将任何您喜欢的格式存储在字符串中(NVARCHAR),oracle标准类型没有格式,所以每次选择都需要转换。 (您可以在视图中执行此操作,但要小心,如果您想对结果进行过滤或排序,它可能不会使用索引)。
-
因为您可能需要使用比较运算符,例如 等。将日期和时间存储为字符串是不明智的。作为一个 FYI,Oracle 日期数据类型包括一个时间组件,而不是小数秒,就像时间戳数据类型一样。因此,通过拥有一个日期字段,您可以获得日期和时间信息,基于您发布的内容(SS 已满,而不是小数秒)。正如 gordon 所指出的,当您运行选择时,您可以使用 to_char() 将日期和时间组件分隔为 2 列,以所需的任何格式。
标签: sql database oracle date create-table