[TL; DR] Используйте литералы отметки времени, чтобы избежать всей этой проблемы:
INSERT INTO MY_TABLE_NAME (
UPDATED_DATE,
CREATED_DATE,
TEST_SUBJECT,
THIRD_DATE
) VALUES (
TIMESTAMP '2018-05-31 14:45:32.000',
TIMESTAMP '2018-05-31 14:45:32.000',
'test',
TIMESTAMP '2018-06-09 14:45:00.000'
);
Если вы не можете проверить параметр NLS_NUMERIC_CHARACTERS
база данных / сеанс.Если десятичная точка не .
, то модель формата x
не будет соответствовать .
, но будет соответствовать любому символу, который использует база данных / сеанс, и строка не будет соответствовать.
SQL Fiddle
Настройка схемы Oracle 11g R2 :
CREATE TABLE MY_TABLE_NAME (
UPDATED_DATE TIMESTAMP,
CREATED_DATE TIMESTAMP,
TEST_SUBJECT VARCHAR2(20),
THIRD_DATE TIMESTAMP
);
Запрос 1 :
-- Set decimal separator to "." and thousands separator to ","
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,'
INSERT INTO MY_TABLE_NAME (
UPDATED_DATE,
CREATED_DATE,
TEST_SUBJECT,
THIRD_DATE
) VALUES (
TO_TIMESTAMP('2018-05-31 14:45:32.000', 'YYYY-MM-DD HH24:MI:SSxFF'),
TO_TIMESTAMP('2018-05-31 14:45:32.000', 'YYYY-MM-DD HH24:MI:SSxFF'),
'test',
TO_TIMESTAMP('2018-06-09 14:45:00.000', 'YYYY-MM-DD HH24:MI:SSxFF')
)
SELECT * FROM MY_TABLE_NAME
Результаты :
| UPDATED_DATE | CREATED_DATE | TEST_SUBJECT | THIRD_DATE |
|-----------------------|-----------------------|--------------|-----------------------|
| 2018-05-31 14:45:32.0 | 2018-05-31 14:45:32.0 | test | 2018-06-09 14:45:00.0 |
Запрос 2 :
-- Set decimal separator to "," and thousands separator to " "
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ', '
INSERT INTO MY_TABLE_NAME (
UPDATED_DATE,
CREATED_DATE,
TEST_SUBJECT,
THIRD_DATE
) VALUES (
TO_TIMESTAMP('2018-05-31 14:45:32.000', 'YYYY-MM-DD HH24:MI:SSxFF'),
TO_TIMESTAMP('2018-05-31 14:45:32.000', 'YYYY-MM-DD HH24:MI:SSxFF'),
'test',
TO_TIMESTAMP('2018-06-09 14:45:00.000', 'YYYY-MM-DD HH24:MI:SSxFF')
)
Результаты :
ORA-01830: date format picture ends before converting entire input string
Другим решением является использование 'YYYY-MM-DD HH24:MI:SS.FF'
в качестве модели формата, а не использование модели формата x
для обеспечения согласованности между экземплярами / сеансами.