暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 输出不按日期格式模型

ASKTOM 2021-03-11
481

问题描述

Select To_Char(to_date('31-Mar-2020'), 'Wth') As A, To_Char(to_date('31-Mar-2020'), 'WTH') As B, 
       To_Char(to_date('01-Feb-2020'), 'WWth') As C, To_Char(to_date('01-Feb-2020'), 'WWTH') As D
from dual;

Ouput

A B C D
5th 5TH 05TH 05TH


-- 预期产出 --
A的输出中的th是小字母。[预期]
B的输出是大写字母。[预期]

-- 意外输出 --
C的输出是大写字母。【不料】
D的输出用大写字母表示。[预期]


问题: 对于C列,我故意写了 'WWth' 来获得 “th” 的小字母,但它显示 “TH”,这是违反格式模型的意外输出。

专家解答

“th” 被称为格式掩码的 “修饰符”,而不是本身的格式掩码。格式掩码是 “WW”,它是大写的,因此我们始终假设大写。从这个意义上说,Wth是一个错误,而不是相反。

在任何情况下,前导元素的情况都可以用来控制事物,例如

SQL> select to_char(sysdate,'DDth') from dual;

TO_C
----
17TH

SQL> select to_char(sysdate,'ddth') from dual;

TO_C
----
17th


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论