--環境
select *from v$version;
SELECT SESSIONTIMEZONE FROM DUAL;
show parameter nls;
-- - / , . ; : 指定返回字串分隔符
select to_char(sysdate,'yyyy/mm/dd') from dual;
select to_char(sysdate,'yyyy:mm:dd') from dual;
--AD/A.D. 公元標識
select to_char(sysdate,'AD YYYY-MM-DD') from dual;
--BC/B.C. 公元標識
select to_char(sysdate,'BC YYYY-MM-DD') from dual;
--CC/SCC 世紀標識,S前綴指定如遇公元前的顯示,會在顯示前加(-)
select to_char(to_date('2014-8-3','YYYY-MM-DD'),'cc') from dual;
--D 指定日期在周中的數值(范圍:1-7)
select to_char(to_date('2014-03-07','YYYY-MM-DD'),'D') from dual; --6
--DAY 指定日期在周中的名稱
select to_char(to_date('2014-03-07','YYYY-MM-DD'),'DAY') from dual; --星期五
--DD 指定日期在當月中的天數(范圍:1-31)
select to_char(to_date('2014-03-07','yyyy-mm-dd'),'DD') from dual; --07
--DDD 指定日期在當年中的天數(范圍:1-366)
select to_char(to_date('2014-03-07','yyyy-mm-dd'),'DDD') from dual; --066
--MON 返回指定日期的月份簡寫
select to_char(sysdate,'MON') from dual;
--MONTH 返回指定日期的月份全稱
select to_char(sysdate,'MONTH') from dual;
--YEAR/SYEAR 返回字符型年,此處 S前綴指定如遇公元前的顯示,會在顯示前加(-)
select to_char(sysdate,'YEAR') from dual; --TWENTY FOURTEEN
select to_char(sysdate,'SYEAR') from dual;
--YYYY/SYYYY 返回數字型年,此處S前綴指定如遇公元前的顯示,會在顯示前加(-)
select to_char(sysdate,'YYYY') from dual;
select to_char(sysdate,'SYYYY') from dual;
--MM 返回指定日期的月份(范圍:1-12)
select to_char(sysdate,'MM') from dual;
--HH/HH12 小時(范圍:1-12)
select to_char(sysdate,'HH') from dual;
select to_char(sysdate,'AMHH') from dual;
select to_char(sysdate,'HH12') from dual;
select to_char(sysdate,'AMHH12') from dual; --下午05
--HH24 小時(范圍:0-23)
select to_char(sysdate,'HH24') from dual;
select to_char(sysdate,'AMHH24') from dual; --下午17
--MI 返回指定時間的分鍾(范圍0-59)
select to_char(sysdate,'MI') from dual;
-- SS 返回指定時間的秒數(范圍:0-59)
select to_char(sysdate,'SS') from dual;
--FF[1-9] 返回毫秒數,可指定長度1-9,默認6位
select to_char(systimestamp,'ff') from dual;
select to_char(systimestamp,'ff4') from dual;
--Y,YYY 返回有逗號分隔顯示的年
select to_char(sysdate,'y,yyy') from dual;
--W 返回指定日期在當月中的第X周(范圍:1-5)
select to_char(to_date('2007-6-18','yyyy-mm-dd'),'w') from dual;
select to_char(sysdate,'W') from dual
--WW 返回指定日期在當年中的第X周(范圍:1-53)
select to_char(to_date('2007-6-18','yyyy-mm-dd'),'WW') from dual;
select to_char(sysdate,'WW') from dual;
--RM 以羅馬數字形式返回月份(范圍I-XII)
select to_char(sysdate,'RM') from dual;
--Q 返回指定日期的季度(范圍:1-4)
select to_char(sysdate,'q') from dual;
--數字
Select TO_CHAR(1.0123) FROM DUAL ;
SELECT TO_CHAR(0.123,'0.0000') FROM DUAL;
--FM去除空格
Select TO_CHAR(10.12,'FM099.999') FROM DUAL ; --FM 去除空格
Select TO_CHAR(10.12,'FM999.999') FROM DUAL ;
Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL;
select to_char(389999.00,'9,999,999') from dual;
--$ 字符前附加$符
select to_char(18,'$999') from dual;
select to_char(18,'999$') from dual;
--0 字符頭部或尾部附加0
select to_char(18.0,'0999') from dual;
select to_char(18.0,'9990.0000') from dual;
--9 與上類似以指定長度返回數值格式,不過如果被格式化的數值長度短於指定格式,則以空格補足。
select to_char(18.0,'0999') from dual;
--B 當整數部分是0時返回空格(即使存在0格式串也忽略)。
select to_char(0.18,'B0999') from dual;
select to_char(1.18,'B0999') from dual;
--C 返回ISO默認指定的標識(默認標識可參見:NLS_ISO_CURRENCY)
select to_char(128.18,'C999999.99') from dual;
--D 返回指定的小數點形式(默認符:.)(默認標識可參見:NLS_NUMERIC_CHARACTER)
select to_char(128.18,'9999D99') from dual;
select to_char(128.18,'9999D999') from dual;
select to_char(128.18,'9999D9') from dual;
--alter session set nls_numeric_characters=':'''
--alter session set nls_numeric_characters='.''';
select to_char(128.18,'9999D99') from dual;
--EEEE 使用科學記數法顯示
select to_char(128.18,'9EEEE') from dual;
--MI 負值在尾部顯示-號,正值在尾部附加空格。另:該格式符必須處於格式串尾部
select to_char(-18,'999MI') from dual;
select to_char(18,'999MI') from dual;
--PR 負值以<>尖括號包括,正值在頭尾部各附加空格。另:該格式符必須處於格式串尾部
select to_char(-18,'999PR') from dual;
select to_char(18,'999PR') from dual;
--S 顯示數值正負值符號。可出現於格式串首部或尾部。
select to_char(18,'S9999') from dual;
select to_char(18,'9999S') from dual;
select to_char(-18,'999S') from dual;
--U 與L類似,在指定位置顯示貨幣單位(默認值見:NLS_DUAL_CURRENCY)
select TO_CHAR(128,'999U') from dual;
select TO_CHAR(128,'999L') from dual;