该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
题目:
哪些选项输出一个负数?如果你确信以下都不对,那么请选E[sql]
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正好相反,返回整数