SQL Plus 中使用的日期时间类型

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

我正在开发 SQL Plus Oracle Database 21c Express Edition 21.0.0.0 版本 21.3.0.0

我正在制作一个表“Post”,其中一个属性需要发布日期和时间。我尝试过使用日期时间和时间戳类型,因为互联网上的不同来源给我指明了不同的方向,并且在这两种情况下,SQL 都会抛出错误“无效数据类型”。

create table Post(
post_id integer primary key,
title varchar(60),
post_time timestamp,
content text,
username varchar(20),
foreign key(username) references Users(username)
);

有人可以告诉我需要修改什么吗,如果可能的话,我还希望以“DD-MM-YYY hh:mm:ss”格式插入日期时间。

sql oracle
1个回答
0
投票

有人可以告诉我需要修改什么吗

TEXT
不是有效的 Oracle 数据类型。使用
CLOB

create table Post(
  post_id   INTEGER PRIMARY KEY,
  title     VARCHAR2(60),         -- VARCHAR2 not VARCHAR
  post_time DATE,                 -- DATE has time component
  content   CLOB,                 -- Text is not valid, use CLOB
  username,                       -- Do not need a data type as it will inherit
                                  -- the data type from the referenced column.
  FOREIGN KEY (username) REFERENCES Users(username)
);

如果可能的话,我还希望以“DD-MM-YYY hh:mm:ss”格式插入日期时间。

在甲骨文中:

  • A
    DATE
    数据类型是一种二进制数据类型,由 7 个字节组成,表示:世纪、世纪年份、月、日、小时、分钟和秒。
  • A
    TIMESTAMP
    数据类型是一种二进制数据类型,由 7-13 个字节组成,表示世纪、世纪年份、月、日、小时、分钟和秒,以及表示小数秒的 0-6 个字节。

二进制数据类型和ALWAYS都具有这些组件,并且从不以任何特定的人类可读格式存储。

如果您想以特定的人类可读格式显示日期,请使用:

SELECT TO_CHAR(post_time, 'DD-MM-YYYY HH24:MI:SS') AS post_time
FROM   post

以您想要的格式显示它。

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