-1

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

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

但是,表中的“dob”格式不同(而是 YY-MM-DD),而 sysdate(我猜)使用了其他格式,我收到错误消息“”literal does not match format string“”和想帮助想出如何转换字符串的想法,我应该转换 dob 还是 sysdate?

4

1 回答 1

2

Looks like the column dob is string (varchar2 or char). You should convert it to date

to_date(dob, 'YY-MM-DD')

The full query will look like this

cursor customer is select fname, ename, ROUND((MONTHS_BETWEEN(sysdate, to_date(dob, 'YY-MM-DD'))/12),1) age from table;
于 2015-03-09T20:57:50.027 回答