Не удается вставить дату в таблицу SQL

Я создал следующую таблицу:

CREATE TABLE match(
match_id NUMBER(4,0), 
match_date DATE, 
attendance NUMBER(6,0), 
stadium_name VARCHAR2(40), 
tournament_id NUMBER(3,0),
CONSTRAINT match_id_pk PRIMARY KEY(match_id),
CONSTRAINT match_stadium_name_fk FOREIGN KEY(stadium_name) 
           REFERENCES stadium(stadium_name));

Я пытаюсь вставить следующую строку:

INSERT INTO match VALUES(1001, '20130515', 90000, 'American Airlines Arena', 001);

Все, что я нашел, говорит мне, что формат ГГГГММДД. Однако я продолжаю получать ORA-01861: литерал не соответствует строке формата.

После использования (DESCRIBE match) это говорит, что длина - только 7. Я думал, что это должно было быть 10.

Заранее благодарю за любую помощь.

1 ответ

Решение

Ну и формат YYYYMMDD вероятно, не формат даты базы данных (вы должны искать NLS_DATE_FORMAT чтобы увидеть, что формат даты в БД).

Но есть NLS_DATE_FORMAT на системном уровне и (может быть, другой) NLS_DATE_FORMAT на уровне сессии.

Вы можете достичь того, что вы хотите, используя TO_DATE и указав формат:

INSERT INTO match VALUES(1001, TO_DATE('20130515', 'YYYYMMDD'), 90000, 'American Airlines Arena', 001);
Другие вопросы по тегам