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正好相反,返回整数

你可能感兴趣的:(PL/SQL每日一题:输出负数)