Не удается вставить дату в таблицу 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);