如何在SQL日期类型列中插入日期?

时间:2020-10-28 19:01:09

标签: sql

我有一个带有日期类型列的表。

enter image description here

我正在尝试在其中插入日期

enter image description here

但是我得到一个错误:

enter image description here

请给我正确的查询以注明日期

3 个答案:

答案 0 :(得分:2)

轻松修复::

INSERT INTO t(dob) VALUES(DATE '2015-12-17');

答案 1 :(得分:1)

假设这是一个基于ORA-01843 error message的Oracle问题,那么问题似乎出在错误提示的日期格式中。

在提供的示例中,日期“ 6-3-2012”是指“ 2012年3月3日”还是“ 2012年6月6日”?答案就在NLS_DATE_FORMAT参数之内。

开箱即用的Oracle日期格式为DD-MON-RR。因此,您更正的日期格式为'03 -MAR-12'或'06 -JUN-12'。如果未更改NLS_DATE_FORMAT。

答案 2 :(得分:0)

请不要尝试在日期列中插入字符串!如果您有字符串,请使用具有明确日期格式的to_date函数(并使用4位数字的日期)。

依靠nls_date_format隐式转换字符串只是在麻烦(就像您刚才所做的那样),它可以很容易地更改,即使某些应用程序也会自己更改它。

日期文字(date '2015-12-17' https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#BABGIGCJ)始终使用相同的日期格式,因此对于临时语句来说可能没问题,但是您需要注意,它是按名称表示的文字,而按性质表示的则是文字。它们不支持绑定变量,因此您最终将编写不可共享的SQL来消耗共享池。