SQL日期格式不变

时间:2017-12-31 14:05:57

标签: sql oracle date

我想做一个简单的日期格式更改。

我的查询如下:

select to_date('01-JAN-2018','dd-mm-yyyy') from dual.

这是一个更大的查询的一部分。

在我的产品中出现如下错误:

oracle.xdo.servlet.data.DataException: oracle.xdo.XDOException: java.sql.SQLDataException: ORA-01858: a non-numeric character was found where a numeric was expected

这一点在我的离线oracle 10g上工作正常

3 个答案:

答案 0 :(得分:3)

不要使用Character.getNumericValue。而是使用to_date()关键字:

date

或者,使用正确的格式:

select date '2018-01-01'

答案 1 :(得分:1)

格式MONselect to_date('01-JAN-2018','dd-MON-yyyy') from dual不匹配。

使用

select to_date('01-01-2018','dd-mm-yyyy') from dual

nls_date_format

在您的oracle 10g数据库中,dd-mm-yyyy必须为dd.mm.yyyy(或dd/mm/yyyydd-mon-yyyy等变体)。

所以,它并不关心dd-MON-yyyy(即隐含地将dd-mm-yyyy转换为import speech_recognition as sr for index, name in enumerate(sr.Microphone.list_microphone_names()): print("Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))

答案 2 :(得分:0)

试试这个:

    select to_date('01-01-2018','dd-mm-yyyy') from dual