问题描述
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




