我在创建一个匿名PL/SQL代码时出现问题,该代码应该打印出名称,姓氏和年龄为1的小数(而不是sysdate,我使用01-SEP-04 ddmonyyyy)一张桌子。我遇到的问题是年龄。这是我想出迄今:PLSQL计算和表中的month_between
set serveroutput on
declare cursor
car_owner is select firstN, lastN, trunc(months_between(date '2004-09-01', to_date('19' || substr(pnr, 1,6), 'yyyymmdd')))/12
from carowners;
b_first carowners.firstN%type;
b_last carowners.lastN%type;
age number (3,1);
begin
if not car_owner%isopen
then open car_owner;
end if;
loop
fetch car_owner into b_first, b_last, age;
exit when car_owner%notfound;
dbms_output.put_line (initcap(b_first || ', ' || b_last) || ', ' || age ||' years old');
end loop;
close car_owner;
end;
的输出中我得到的是这样的:
马丁,VARG,55.4年老
肯尼,绿50.6岁
托尼, Zawicki,39岁
Shawon,哈桑33.3岁
萨迪克,诺维茨基35.4岁
简,罗伯茨45.3岁
特里,Mcfield 43.4岁
恶意,Vanzi 23.4岁
什么即时寻找的是类似这样的输出:
马丁,VARG,55,6岁
肯尼,绿色,50,7年老
托尼,Zawicki,39,1岁
Shawon,哈桑,33,4岁
萨迪克,诺维茨基,35,6岁
简·罗伯茨,45,5岁
TERR Y,Mcfield,43,6岁
恶意,Vanzi,23,5岁
注意,我需要一个逗号和小数点右边...
感谢所有的建议和帮助!
如何从55.4到55.6或50.6 50.7?这不仅仅是小数点的替代。 –