PL/SQL每日一题:输出负数

题目
哪些选项输出一个负数?如果你确信以下都不对,那么请选E

A
DECLARE
   l_date2   DATE := date '2012-12-20';
   l_date1   DATE := l_date2 - 1;
BEGIN
   DBMS_OUTPUT.put_line (MONTHS_BETWEEN (l_date1, l_date2));
END;
/


B 
DECLARE
   l_date1   DATE := date '2012-12-20';
   l_date2   DATE;
BEGIN
   DBMS_OUTPUT.put_line (MONTHS_BETWEEN (l_date1, l_date2));
END;
/


C 
DECLARE
   l_date1   DATE := date '2012-12-20';
   l_date2   DATE := l_date1;
BEGIN
   DBMS_OUTPUT.put_line (MONTHS_BETWEEN (l_date1, l_date2));
END;
/


D
DECLARE
   l_date1   DATE := date '2012-12-20';
   l_date2   DATE := l_date1 - 1;
BEGIN
   DBMS_OUTPUT.put_line (MONTHS_BETWEEN (l_date1, l_date2));
END;
/


知识点补充--MONTHS_BETWEEN的使用说明

Oracle的MONTHS_BETWEEN日期函数返回两个日期之间的月份数,是第一个参数日期到第二个参数日期的月份数
两个参数相等就返回0
第一个参数大于第二个参数返回正数
第一个参数小于第二个参数返回负数。
取绝对值在取整就得到月份数

答案

① A正确
② B L_DATE2没有赋值,故MONTHS_BETWEEN返回空值。
③ C 两个参数一样,返回0.
④ D 结果和A正好相反,返回整数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值