sql - 使用 to_date() 的 Oracle 查询得到 ORA-01858

标签 sql oracle datetime

我正在使用以下语法将字符字段转换为“Toad for Oracle”中的日期:

to_date(value_char, 'MM/DD/YYYY HH:MI:SS AM','NLS_DATE_LANGUAGE = American')

我收到错误:

ORA-01858: a non-numeric character was found where a numeric was expected'

我相信错误可能是个位数的月份和日期。例如,这里有几个字段值:

3/3/2020 9:56:00 AM
12/14/2020 10:39:00 AM

是否有特定语法来指定前面没有'0'。

最佳答案

你没有给出数据库版本,但如果你是 12.2 或更高版本,下面应该会告诉你问题出在哪里。

select value_char
from table
where to_date(value_char default null on conversion error,
          'MM/DD/YYYY HH:MI:SS AM','NLS_DATE_LANGUAGE = American') is null;

关于sql - 使用 to_date() 的 Oracle 查询得到 ORA-01858,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67594244/

相关文章:

sql - sitecore 将项目统计数据存储在数据库中的什么位置..?

php - 如果特定行数据尚未在同一日期插入,如何检查和插入数据

sql - rails : Order by sum of two columns

c# - 在 Elasticsearch 和嵌套中传递和比较具有不同时区的日期时间值

sql - PLS-00201 : identifier 'CURSOR' must be declared

oracle - 数字到日期的转换会影响oracle中的性能

java - 从 Oracle 触发器启动 Java Web 应用程序中的流程

sql - 在预期的位置找不到 FROM 关键字 (Oracle SQL)

c# - 你如何使用出生日期计算 C# 中的年龄(考虑闰年)

MySQL日期函数(假设May-10保存为2010-05-01)