sql - oracle sql 中的迄今为止的字符

标签 sql oracle date-arithmetic

下面的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')

将查询分解为各个部分,然后进行理解。

substrto_date 是正在使用的两个函数。

  1. 提取所需的子字符串,substr('2/22/2015 9:20:06 AM',1,9)
  2. 对第 1 步的输出应用 TO_DATETO_DATE(substr('2/22/2015 9:20:06 AM',1,9),'mm/dd/yyyy')
  3. 就是这样。

因此,在您发布的查询中,根本不需要 'DD-MON-YY' 格式掩码。

此外,您想要实现的目标相当于:

TRUNC(TO_DATE('2/22/2015 9:20:06 AM', 'MM/DD/YYYY HH:MI:SS AM'))

TRUNCDATE 类型中删除时间部分。

或者,

您可以使用ANSI TIMESTAMP 文字:

TRUNC(TIMESTAMP '2015-02-22 09:20:06')

关于sql - oracle sql 中的迄今为止的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29747882/

相关文章:

C# - 如何获取 oracle long 原始类型值

java - Oracle Weblogic 服务器 : java.net.SocketException "Too many open files"

sql - laravel Eloquent 本地 key 是什么

mysql - 短路逻辑评估运算符

sql - 将 Like 语句与波斯语单词一起使用

sql - Oracle Lag 函数得出前 3 个月余额的总和

mysql - 错误代码 : 1093. 您无法在 FROM 子句中指定用于更新的目标表 'schedule'

sql - PostgreSQL age() 函数 : different/unexpected results when landing in dfferent month

objective-c - 计算数组中特定月份的日期数

cocoa - 查找任意日期下一个最接近的一周中特定日期的 NSDate