如何在将数据插入 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.
一切正常
我正在向表格中插入数据,但遇到了问题。我需要的日期是:“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.