我正在尝试将下面的行插入Oracle数据库,但是我收到错误
[22008][1830] ORA-01830: date format picture ends before converting entire input string
insert into tbl (coldate, start, end)
values (
TO_DATE('2005-03-04 02:04:30', 'YYYY-MM-DD HH24:MI:SS'),
TO_TIMESTAMP('2005-03-23 09:06:51.055000', 'YYYY-MM-DD HH24:MI:SS'),
TO_TIMESTAMP('2005-04-26 23:32:59.430000', 'YYYY-MM-DD HH24:MI:SS')
);
答案 0 :(得分:1)
错误消息告诉您应该做什么:您的格式掩码太短"短"为您提供的价值。您需要在to_timestamp()
TO_TIMESTAMP('2005-03-23 09:06:51.055000', 'YYYY-MM-DD HH24:MI:SS.FF6')
有关to_timestamp()
中使用的格式模型的更多详细信息,请参阅手册:
https://docs.oracle.com/database/121/SQLRF/sql_elements004.htm#CDEHIFJA
答案 1 :(得分:1)
您缺少格式字符串中的小数秒规范:
insert into tbl (coldate, start, end)
values (
TO_DATE('2005-03-04 02:04:30', 'YYYY-MM-DD HH24:MI:SS'),
TO_TIMESTAMP('2005-03-23 09:06:51.055000', 'YYYY-MM-DD HH24:MI:SS.FF'),
-- Here ----------------------------------------------------------^
TO_TIMESTAMP('2005-04-26 23:32:59.430000', 'YYYY-MM-DD HH24:MI:SS.FF')
-- And here ------------------------------------------------------^
);
答案 2 :(得分:0)
使用看似未记录的功能TIMESTAMP
TIMESTAMP不需要传递日期格式,但是日期必须采用标准UTC日期格式。
例如:
insert into table (dateTimeField) values (TIMESTAMP '2019-07-24 04:23:14');