在 Oracle 10g 中,我如何将这种格式 1/4/2022 12:00:00 AM 存储在日期类型的列中

In Oracle 10g how can i store this format 1/4/2022 12:00:00 AM in Column of type Date

我想将此 1/4/2022 12:00:00 AM 存储在日期类型的列中,但出现此错误 ORA-01843:不是有效月份 如果可以在 oracle

中执行此操作,我可以得到任何帮助吗

使用具有适当格式模型的 to_date 函数。

在你的例子中,不清楚 1/4/2022 代表什么(是 4 月 1 日还是 1 月 4 日)所以我试着猜测它。

SQL> create table test (col date);

Table created.

SQL> insert into test (col) values (to_date('1/4/2022 12:00:00 AM', 'dd/mm/yyyy hh:mi:ss am'));

1 row created.

SQL>

如何获取该值?

一个选项是像插入数据时那样做,但这次使用 to_char 函数:

SQL> select to_char(col, 'dd/mm/yyyy hh:mi:ss am') result from test;

RESULT
----------------------
01/04/2022 12:00:00 AM

另一种选择是改变会话;然后 select * from test returns 想要的结果:

SQL> alter session set nls_date_format = 'dd/mm/yyyy hh:mi:ss am';

Session altered.

SQL> select * from test;

COL
----------------------
01/04/2022 12:00:00 AM

SQL>

AM/PM 差异化:Oracle 知道 你输入的内容:

SQL> insert into test (col) values (to_date('1/4/2022 2:30:00 PM', 'dd/mm/yyyy hh:mi:ss am'));

1 row created.

SQL> select * from test;

COL
----------------------
01/04/2022 12:00:00 AM
01/04/2022 02:30:00 PM

SQL>