我正在將資料插入表中并且遇到了一個問題。我需要日期為:“2000 年 9 月 29 日”,但得到“2000 年 9 月 29 日”。任何幫助將非常感激!
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')));
uj5u.com熱心網友回復:
錯誤的做法。
日期不以“大寫”或“小寫”存盤;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具有所需格式模型的功能。
默認情況下,在我的資料庫中(這意味著您的資料庫可能會以不同的方式顯示),它看起來像這樣:
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陳述句中匹配了列名和適當的資料型別嗎?因為,我的示例表一切正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465423.html
