oracle日期大于2019,PL/SQL Challenge 每日一题:2019-7-1 求月末日期

论坛 期权论坛 脚本     
已经匿名di用户   2022-4-26 16:01   2289   0

(原发表于 2011-12-20)

最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。

每两周的优胜者可获得itpub奖励的技术图书一本。

以往旧题索引:

http://www.itpub.net/forum.php?m ... eid&typeid=1808

原始出处:

http://www.plsqlchallenge.com/

作者:Steven Feuerstein

运行环境:SQLPLUS, SERVEROUTPUT已打开

注:本题给出答案时候要求给予简要说明才能得到奖品

我们的员工表看起来像这样:

CREATE TABLE plch_employees

(

employee_id INTEGER

, last_name VARCHAR2 (100)

, first_name VARCHAR2 (100)

, hire_date DATE

, salary NUMBER

)

/

BEGIN

INSERT INTO plch_employees

VALUES (100

, 'Clooney'

, 'Sam'

, DATE '2011-12-07'

, 10000);

INSERT INTO plch_employees

VALUES (200

, 'Craig'

, 'Donna'

, DATE '2011-12-01'

, 15000);

INSERT INTO plch_employees

VALUES (300

, 'Mirren'

, 'Horace'

, DATE '2011-11-23'

, 17000);

COMMIT;

END;

/

员工在被录用的当月的最后一天被评估(即使这天是周六或周日!)。我写了一个过程来显示每个员工的姓和评估日期:

CREATE OR REPLACE PROCEDURE plch_show_evals

IS

BEGIN

FOR employee_rec IN ( SELECT last_name, hire_date

FROM plch_employees

ORDER BY hire_date)

LOOP

DBMS_OUTPUT.put_line (

employee_rec.last_name

|| ':'

|| TO_CHAR (

plch_last_date (employee_rec.hire_date)

, 'YYYY-MM-DD'));

END LOOP;

END;

/

哪些选项实现了函数,从而使得过程plch_show_evals在执行之后,将会显示下列文本?

Mirren:2011-11-30

Craig:2011-12-31

Clooney:2011-12-31

(A)

CREATE OR REPLACE FUNCTION plch_last_date (date_in IN DATE)

RETURN DATE

IS

BEGIN

RETURN TRUNC (ADD_MONTHS (date_in, 1), 'MON') - 1;

END;

(B)

CREATE OR REPLACE FUNCTION plch_last_date (date_in IN DATE)

RETURN DATE

IS

BEGIN

RETURN LAST_DATE (date_in);

END;

(C)

CREATE OR REPLACE FUNCTION plch_last_date (date_in IN DATE)

RETURN DATE

IS

BEGIN

RETURN LAST_DAY (date_in);

END;

(D)

CREATE OR REPLACE FUNCTION plch_last_date (date_in IN DATE)

RETURN DATE

IS

BEGIN

RETURN date_in.LAST_DAY;

END;

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP