OCP-1Z0-051 第92题 日期格式

一、原题
View the Exhibit and examine the data in the PROMO_NAME and PROMO_END_DATE columns of the PROMOTIONS table, and the required output format.


Which two queries give the correct result? (Choose two.)
A. SELECT promo_name, TO_CHAR(promo_end_date,'Day')|| ', '||
                                           TO_CHAR(promo_end_date,'Month') ' '
                                           TO_CHAR(promo_end_date,'DD, YYYY') AS last_day
       FROM promotions;

B. SELECT promo_name,TO_CHAR (promo_end_date,'fxDay')|| ', '||
                                          TO_CHAR(promo_end_date,'fxMonth')|| ' '||
                                          TO_CHAR(promo_end_date,'fxDD, YYYY') AS last_day
       FROM promotions;

C. SELECT promo_name, TRIM(TO_CHAR(promo_end_date,'Day')) ||', '||
                                           TRIM(TO_CHAR(promo_end_date,'Month')) ||' '||
                                           TRIM(TO_CHAR(promo_end_date,'DD, YYYY')) AS last_day
       FROM promotions;

D. SELECT promo_name,TO_CHAR(promo_end_date,'fmDay')||','||
                                         TO_CHAR(promo_end_date,'fmMonth')||' '||
                                         TO_CHAR(promo_end_date,'fmDD, YYYY') AS last_day
        FROM promotions;

答案:CD

二、题目翻译
下面是 PROMOTIONS表的PROMO_NAME and PROMO_END_DATE列的数据 与 PROMO_END_DATE输出的所需格式:
下面哪两个查询能给出正确结果?(选择两个)

三、题目解析
A选项不正确,都是默认的,显示长度一样,即显示结果会对齐显示,没有去掉多余的空格。
B选项不正确,fx加到此处没什么作用,fx为精确匹配格式,和A选项的结果类似,也是会对齐显示,有多余的空格。
C选项正确,使用trim函数去掉左右多余的空格。
D选项正确,使用fm去掉多余的空格。

fm的详细使用方法,详见:
http://blog.csdn.net/holly2008/article/details/25213993

四、测试
       这里不再另外建表,使用oracle自带的测试表emp表,其中有一列hiredate列,和上面的格式类似。
       测试ABCD四个选项的结果如下:

SQL> select ename,hiredate from emp;

ENAME                HIREDATE
-------------------- ------------
SMITH                17-DEC-80
ALLEN                20-FEB-81
WARD                 22-FEB-81
JONES                02-APR-81
MARTIN               28-SEP-81
BLAKE                01-MAY-81
CLARK                09-JUN-81
SCOTT                19-APR-87
KING                 17-NOV-81
TURNER               08-SEP-81
ADAMS                23-MAY-87
JAMES                03-DEC-81
FORD                 03-DEC-81
MILLER               23-JAN-82

14 rows selected.

SQL> col last_day for a30
SQL> SELECT ename, TO_CHAR(hiredate,'Day')|| ', '||
  2  TO_CHAR(hiredate,'Month')|| ' '||
  3  TO_CHAR(hiredate,'DD, YYYY') AS last_day
  4  FROM emp;

ENAME                LAST_DAY
-------------------- ------------------------------
SMITH                Wednesday, December  17, 1980
ALLEN                Friday   , February  20, 1981
WARD                 Sunday   , February  22, 1981
JONES                Thursday , April     02, 1981
MARTIN               Monday   , September 28, 1981
BLAKE                Friday   , May       01, 1981
CLARK                Tuesday  , June      09, 1981
SCOTT                Sunday   , April     19, 1987
KING                 Tuesday  , November  17, 1981
TURNER               Tuesday  , September 08, 1981
ADAMS                Saturday , May       23, 1987
JAMES                Thursday , December  03, 1981
FORD                 Thursday , December  03, 1981
MILLER               Saturday , January   23, 1982

14 rows selected.

SQL> SELECT ename,TO_CHAR (hiredate,'fxDay')|| ', '||
  2  TO_CHAR(hiredate,'fxMonth')|| ' '||
  3  TO_CHAR(hiredate,'fxDD, YYYY') AS last_day
  4  FROM emp;

ENAME                LAST_DAY
-------------------- ------------------------------
SMITH                Wednesday, December  17, 1980
ALLEN                Friday   , February  20, 1981
WARD                 Sunday   , February  22, 1981
JONES                Thursday , April     02, 1981
MARTIN               Monday   , September 28, 1981
BLAKE                Friday   , May       01, 1981
CLARK                Tuesday  , June      09, 1981
SCOTT                Sunday   , April     19, 1987
KING                 Tuesday  , November  17, 1981
TURNER               Tuesday  , September 08, 1981
ADAMS                Saturday , May       23, 1987
JAMES                Thursday , December  03, 1981
FORD                 Thursday , December  03, 1981
MILLER               Saturday , January   23, 1982

14 rows selected.

SQL> SELECT ename, TRIM(TO_CHAR(hiredate,'Day')) ||', '||
  2  TRIM(TO_CHAR(hiredate,'Month')) ||' '||
  3  TRIM(TO_CHAR(hiredate,'DD, YYYY')) AS last_day
  4  FROM emp;

ENAME                LAST_DAY
-------------------- ------------------------------
SMITH                Wednesday, December 17, 1980
ALLEN                Friday, February 20, 1981
WARD                 Sunday, February 22, 1981
JONES                Thursday, April 02, 1981
MARTIN               Monday, September 28, 1981
BLAKE                Friday, May 01, 1981
CLARK                Tuesday, June 09, 1981
SCOTT                Sunday, April 19, 1987
KING                 Tuesday, November 17, 1981
TURNER               Tuesday, September 08, 1981
ADAMS                Saturday, May 23, 1987
JAMES                Thursday, December 03, 1981
FORD                 Thursday, December 03, 1981
MILLER               Saturday, January 23, 1982

14 rows selected.

SQL> SELECT ename,TO_CHAR(hiredate,'fmDay')||','||
  2  TO_CHAR(hiredate,'fmMonth')||' '||
  3  TO_CHAR(hiredate,'fmDD, YYYY') AS last_day
  4  FROM emp;

ENAME                LAST_DAY
-------------------- ------------------------------
SMITH                Wednesday,December 17, 1980
ALLEN                Friday,February 20, 1981
WARD                 Sunday,February 22, 1981
JONES                Thursday,April 2, 1981
MARTIN               Monday,September 28, 1981
BLAKE                Friday,May 1, 1981
CLARK                Tuesday,June 9, 1981
SCOTT                Sunday,April 19, 1987
KING                 Tuesday,November 17, 1981
TURNER               Tuesday,September 8, 1981
ADAMS                Saturday,May 23, 1987
JAMES                Thursday,December 3, 1981
FORD                 Thursday,December 3, 1981
MILLER               Saturday,January 23, 1982

14 rows selected.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值