3

我正在使用 Oracle SQL,但我遇到了日期问题。

我得到了一个包含许多Insert命令的长脚本,例如:

Insert into MyTable 
(TIME,CROSS,BID,ASK) 
values (to_timestamp('13-NOV-14 03.38.27.785000000 PM','DD-MON-RR HH.MI.SSXFF AM'),'USD/CHF',0.96294,0.963);

但是,我收到以下错误:

ORA-01843 -  "not a valid month"

这是 sysdate 格式:

22-FEB-15 04.57:18

我尝试了以下命令,但出现格式错误:

alter session set nls_date_format = 'DD-MON-RR HH.MI:SSXFF';

我该如何解决这个问题?此外,我想将这些日期转换为以下格式:

DD/MM/YYYY HH24:MI:SS.miliseconds

这种转换可以在插入命令中吗?

请指教

4

1 回答 1

4

它怀疑您的locale_specific NLS_DATE_LANGUAGE不同。

使用to_timestamp中包含的NLS_DATE_LANGUAGE参数尝试以下查询:

to_timestamp('13-NOV-14 03.38.27.785000000 PM','DD-MON-RR HH.MI.SSXFF AM','NLS_DATE_LANGUAGE = AMERICAN')

有关更改会话的另一种选择,请参见此内容。

于 2015-02-22T15:42:22.173 回答