oracle ORA-01830 -插入日期和时间[一式两份]

jfewjypa  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(120)

此问题在此处已有答案

how to insert date and time in oracle?(5个答案)
上个月关门了。
我有以下字符串值:

15.01.2023 18.03.42

字符串
我试图将其插入Oracle中的日期列。这给出了可怕的ORA-01830错误。

insert into my_schema.my_table (date_column) values ('15.01.2023 18.03.42')


其中date_column是日期列。
当检查日期的NLS格式时,它返回以下内容:

DD.MM.YYYY


Oracle中的Date数据类型有一个隐藏的时间元素,所以它应该可以工作-因为我之前已经选择了日期列的时间部分,格式如下:

DD.MM.YYYY HH24.MI.SS


所以回到上面提到的原始字符串,Date列接受这个Date + Time字符串是否缺少了什么?

7fyelxc5

7fyelxc51#

你让DBMS猜测你的字符串代表什么。根据会话设置,这可能有效,也可能无效。这种事决不能碰运气。
如果你想插入一个固定的日期时间,那么使用一个时间戳文字:

insert into my_table (date_column) values (timestamp '2023-01-15 18:03:42');

字符串
如果您要将格式为'dd.mm.yyyy hh24.mi.ss'的字符串插入到日期列中,则使用具有该显式格式的TO_DATE

insert into my_table (date_column) values (to_date(:dt, 'dd.mm.yyyy hh24.mi.ss'));


演示:https://dbfiddle.uk/LA2AWsPc

相关问题