-1

年齢を小数点以下 1 桁で計算することになっています。私は次のように書いています。

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

ただし、テーブルの「dob」は同じ形式ではありません(代わりにYY-MM-DDです)が、sysdate(推測)は別のものを使用し、「リテラルはフォーマット文字列と一致しません」というエラーメッセージが表示されます文字列を変換する方法についてアイデアを考え出すのを手伝ってほしいのですが、dob または sysdate を変換する必要がありますか?

4

1 に答える 1

2

列 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;
于 2015-03-09T20:57:50.027 に答える