最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。
每两周的优胜者可获得itpub奖励的技术图书一本。
以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808
原始出处:
http://www.plsqlchallenge.com/
作者: Kim Berg Hansen
运行环境:SQLPLUS, SERVEROUTPUT已打开
注:本题给出答案时候要求给予简要说明才能得到奖品
我有一张表,带有一个时间戳的列:
create table qz_someday (
sometimetimestamp(9)
)
/
insert into qz_someday values (
to_timestamp('2018-12-25 12:34:56', 'YYYY-MM-DD HH24:MI:SS')
)
/
commit
/
我想要在时间戳上面加上0.123456789秒,然后显示这个结果,包括所有完整的小数点并不进行任何四舍五入。为此我写了这个未完成的查询:
select to_char(
##REPLACE##
, 'YYYY-MM-DD HH24:MI:SS.FF9'
) as the_time
from qz_someday
/
哪些选项可以取代##REPLACE##使得查询返回这个输出:
THE_TIME
-----------------------------
2018-12-25 12:34:56.123456789
(A)
sometime + interval '0.123456789' second
(B)
sometime + interval '0.123456789' second(9)
(C)
sometime + interval '0.123456789' second(1, 9)
(D)
sometime + interval '00:00.123456789' minute to second
(E)
sometime + interval '00:00.123456789' minute to second(9)
(F)
sometime + interval '00:00.123456789' minute to second(2, 9)
(G)
sometime + numtodsinterval(0.123456789, 'second')
(H)
sometime + numtodsinterval(0.123456789, 'second(9)')
(I)
sometime + cast(
numtodsinterval(0.123456789, 'second')
as interval day to second
)
(J)
sometime + cast(
numtodsinterval(0.123456789, 'second')
as interval day to second(9)
)
(K)
sometime + cast(
numtodsinterval(0.123456789, 'second')
as interval day to second(1, 9)
)
(L)
sometime + (to_timestamp('00.123456789', 'SS.FF9')
- to_timestamp('00.000000000', 'SS.FF9')
)
(M)
sometime + (to_timestamp('00.123456789', 'SS.FF9')
- to_timestamp('00.000000000', 'SS.FF9')
) day to second(9)
(N)
sometime + (to_timestamp('00.123456789', 'SS.FF9')
- to_timestamp('00.000000000', 'SS.FF9')
) day to second(2, 9)
|