下面的SQL错误是什么:
select to_Date(substr('2/22/2015 9:20:06 AM',1,9),'mm/dd/yyyy','DD-MON-YY') from dual
我收到以下错误:
ORA-12702: invalid NLS parameter string used in SQL function error
但是 select substr('2/22/2015 9:20:06 AM',1,9) from Dual
显示 2/22/2015
。我想将其转换为日期。
最佳答案
to_Date(substr('2/22/2015 9:20:06 AM',1,9),'mm/dd/yyyy','DD-MON-YY')
将查询分解为各个部分,然后进行理解。
substr 和 to_date 是正在使用的两个函数。
- 提取所需的子字符串,substr('2/22/2015 9:20:06 AM',1,9)
- 对第 1 步的输出应用
TO_DATE
,TO_DATE(substr('2/22/2015 9:20:06 AM',1,9),'mm/dd/yyyy')。 - 就是这样。
因此,在您发布的查询中,根本不需要 'DD-MON-YY'
格式掩码。
此外,您想要实现的目标相当于:
TRUNC(TO_DATE('2/22/2015 9:20:06 AM', 'MM/DD/YYYY HH:MI:SS AM'))
TRUNC 从 DATE 类型中删除时间部分。
或者,
您可以使用ANSI TIMESTAMP 文字:
TRUNC(TIMESTAMP '2015-02-22 09:20:06')
关于sql - oracle sql 中的迄今为止的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29747882/