Я могу вставить данные даты и времени

      insert into "PRUEBAS_MÉDICAS" (CÓDIGO, NOMBRE, FECHA_Y_HORA, RESULTADO) 
VALUES('78426', 'TOMOGRAFÍA', '20120618 10:34:09 AM', 'Tumor Abdominal' );

И ошибка

Ошибка SQL: ORA-01861: литерал не совпадает с литералом формата 01861. 00000 — «литерал не соответствует строке формата» * Причина: литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением ведущих пробелов). Если модификатор «FX» включен, литерал должен совпадать точно, без лишних пробелов. *Действие: Исправьте строку формата, чтобы она соответствовала литералу.

Я хочу вставить данные даты и времени

1 ответ

Или:

  1. Используйте и укажите модель формата:

            insert into "PRUEBAS_MÉDICAS" (
      CÓDIGO,
      NOMBRE,
      FECHA_Y_HORA,
      RESULTADO
    ) VALUES(
      '78426',
      'TOMOGRAFÍA',
      TO_DATE('20120618 10:34:09 AM', 'YYYYMMDD HH12:MI:SS AM'),
      'Tumor Abdominal'
    );
    
  2. ИспользоватьTIMESTAMPбуквально:

            insert into "PRUEBAS_MÉDICAS" (
      CÓDIGO,
      NOMBRE,
      FECHA_Y_HORA,
      RESULTADO
    ) VALUES(
      '78426',
      'TOMOGRAFÍA',
      TIMESTAMP '2012-06-18 10:34:09',
      'Tumor Abdominal'
    );
    
  3. ИспользоватьDATEиINTERVAL DAY TO SECONDлитералы:

            insert into "PRUEBAS_MÉDICAS" (
      CÓDIGO,
      NOMBRE,
      FECHA_Y_HORA,
      RESULTADO
    ) VALUES(
      '78426',
      'TOMOGRAFÍA',
      DATE '2012-06-18' + INTERVAL '10:34:09' HOUR TO SECOND,
      'Tumor Abdominal'
    );
    
  4. ИзменитьNLS_DATE_FORMAT:

            ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDD HH12:MI:SS AM';
    

    И используйте свой запрос и полагайтесь на неявное преобразование строки в дату для работы.

    (Пожалуйста, не используйте этот последний вариант, либо используйте литералы, либо явно укажите преобразование, используя TO_DATE).

Другие вопросы по тегам