如何在将数据插入 SQL table 时使日期的月份大写

How to make a date's month be capitalized while inserting data into a SQL table

我正在向表格中插入数据,但遇到了问题。我需要的日期是:“29-SEP-2000”,但我得到的是“29-Sep-2000”。任何帮助将不胜感激!

INSERT INTO movies (title_id, title, description, rating, category, release_date)
VALUES
(title_id_seq.NEXTVAL, 'Being the Ricardos', 'Follows Lucy and Desi as they face a crisis that could end their careers and another that could end their marriage.', 'R', 'DRAMA', (TO_DATE('December 2, 2021', 'Mon DD, YYYY')));

错误的方法。

日期不以“大写”或“小写”形式存储; Oracle 使用 7 个字节以其内部格式存储该信息。您所要做的就是插入一个有效的 DATE 数据类型值:

SQL> CREATE TABLE movies
  2  (
  3     title_id       NUMBER,
  4     title          VARCHAR2 (30),
  5     description    VARCHAR2 (200),
  6     rating         VARCHAR2 (5),
  7     category       VARCHAR2 (20),
  8     release_date   DATE
  9  );

Table created.

SQL> CREATE SEQUENCE title_id_seq;

Sequence created.

插入:注意 release_date 值 - 我使用的日期文字总是看起来像这样:date 关键字后跟 yyyy-mm-dd 格式的值,用单引号括起来。

SQL> INSERT INTO movies (title_id,
  2                      title,
  3                      description,
  4                      rating,
  5                      category,
  6                      release_date)
  7       VALUES (title_id_seq.NEXTVAL,
  8               'Being the Ricardos',
  9               'Follows Lucy and Desi ...',
 10               'R',
 11               'DRAMA',
 12               DATE '2021-12-02');

1 row created.

日期也可以是具有适当格式掩码的 to_date 函数,例如

SQL> update movies set release_date = to_date('02.12.2021', 'dd.mm.yyyy');

1 row updated.

SQL> update movies set release_date = to_date('2021, Dec 02', 'yyyy, Mon dd', 'nls_date_language=english');

1 row updated.

所有这些值代表相同的日期:2021 年 12 月 2 日。

可以按您想要的方式呈现该值。如何?通过应用具有所需格式模型的 TO_CHAR 函数。

默认情况下,在 my 数据库中(这意味着您的显示可能不同),它看起来像这样:

SQL> select release_date from movies;

RELEASE_
--------
02.12.21

你想要的方式:

SQL> select to_char(release_date, 'MON dd, yyyy') release_date from movies;

RELEASE_DATE
------------
DEC 02, 2021

您在评论中发布的错误(ORA-01722:无效数字)与日期无关;它与不同的东西有关。说不清是什么;当您尝试将字符插入 NUMBER 数据类型列时会引发此问题。您确定在 INSERT 语句中匹配了列名和适当的数据类型吗?因为,my 示例 table.

一切正常