OCP-1Z0-051 第91题 TO_DATE转换函数


一、原题
View the Exhibit and examine the structure of the PROMOTIONS table.

Which two SQL statements would execute successfully? (Choose two.)
A. UPDATE promotions
            SET promo_cost = promo_cost+ 100
     WHERE TO_CHAR(promo_end_date, 'yyyy') > '2000';

B. SELECT promo_begin_date
        FROM promotions
     WHERE TO_CHAR(promo_begin_date,'mon dd yy')='jul 01 98';

C. UPDATE promotions
            SET promo_cost = promo_cost+ 100
     WHERE promo_end_date > TO_DATE(SUBSTR('01-JAN-2000',8));

D. SELECT TO_CHAR(promo_begin_date,'dd/month')
        FROM promotions
     WHERE promo_begin_date IN (TO_DATE('JUN 01 98'), TO_DATE('JUL 01 98'));

答案:AB
二、题目翻译
下面是PROMOTIONS表的结构
哪两个SQL语句能执行成功?(选择两个)
三、题目解析
C选项不正确,SUBSTR的结果是字符串'2000',TO_DATE需要第二个参数,日期格式,这里使用YYYY格式符才能转换。
D选项不正确,TO_DATE函数,不写第二个参数,是转成默认日期格式,但这里的字符串显然不是默认日期格式,这样写是无法进行转换的,需要指定日期格式。

SQL> select TO_DATE('JUN 01 98') from dual;
select TO_DATE('JUN 01 98') from dual
               *
ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected

SQL> select TO_DATE('JUN 01 98','mm-dd-yyyy') from dual;

TO_DATE('JUN
------------
01-JUN-98

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值