Oracle 日期格式转换PL/SQL

Oracle 日期格式转换PL/SQL,oracle,date,plsql,type-conversion,sysdate,Oracle,Date,Plsql,Type Conversion,Sysdate,我应该用一个小数点来计算年龄。我写了以下内容: cursor customer is select fname, ename, ROUND((MONTHS_BETWEEN(sysdate, dob)/12),1) age from table; 然而,表中的“dob”格式不同(相反,它是YY-MM-DD),而sysdate(我猜)使用了其他格式,我收到错误消息“文字与格式字符串不匹配”,我想帮助大家想出如何转换字符串的方法,我应该转换dob还是sysdate?看起来dob列是字符串(varch

我应该用一个小数点来计算年龄。我写了以下内容:

cursor customer is select fname, ename, ROUND((MONTHS_BETWEEN(sysdate, dob)/12),1) age from table;

然而,表中的“dob”格式不同(相反,它是YY-MM-DD),而sysdate(我猜)使用了其他格式,我收到错误消息“文字与格式字符串不匹配”,我想帮助大家想出如何转换字符串的方法,我应该转换dob还是sysdate?

看起来dob列是字符串(varchar2或char)。应将其转换为日期

to_date(dob, 'YY-MM-DD')
完整查询如下所示

cursor customer is select fname, ename, ROUND((MONTHS_BETWEEN(sysdate, to_date(dob, 'YY-MM-DD'))/12),1) age from table;

PL/SQL不是MySQL中使用的语言。了解您使用的DBMS肯定会帮助您找到正确的文档。PL/SQL不是MySQL(DBMS)语言。Oracle(RDBMS)使用PL/SQL我想您的意思是“to_date()”而不是“to_char()”