「ORACLE系列」日期資料的TO_CHAR()格式化轉換及TRUNC()擷取

ORACLE中的TO_CHAR()函式用途廣泛,可以把各種資料型別(日期/時間、INT、FLOAT、NUMBERIC等)轉換成格式化的字串。

樣例及相關指令碼:

——————————————————————

SELECT

SYSDATE SYSDATE_NOW

,TRUNC(SYSDATE,‘SYYYY’) TRUNC_SYYYY /*擷取當年第一天*/

,TRUNC(SYSDATE,‘YYYY’) TRUNC_YYYY /*擷取當年第一天*/

,TRUNC(SYSDATE,‘YEAR’) TRUNC_YEAR /*擷取當年第一天*/

,TRUNC(SYSDATE,‘SYEAR’) TRUNC_SYEAR /*擷取當年第一天*/

,TRUNC(SYSDATE,‘YYY’) TRUNC_YYY /*擷取當年第一天*/

,TRUNC(SYSDATE,‘YY’) TRUNC_YY /*擷取當年第一天*/

,TRUNC(SYSDATE,‘Y’) TRUNC_Y /*擷取當年第一天*/

,TRUNC(SYSDATE,‘IYYY’) TRUNC_IYYY /*擷取當年第一週星期一*/

,TRUNC(SYSDATE,‘IY’) TRUNC_IY /*擷取當年第一週星期一(即:包含當年1月1日那個星期的星期一)*/

,TRUNC(SYSDATE,‘I’) TRUNC_I /*擷取當年第一週星期一(即:包含當年1月1日那個星期的星期一)*/

,TRUNC(SYSDATE,‘Q’) TRUNC_Q /*擷取當季第一天*/

,TRUNC(SYSDATE,‘MONTH’) TRUNC_MONTH /*擷取當月第一天*/

,TRUNC(SYSDATE,‘MON’) TRUNC_MON /*擷取當月第一天*/

,TRUNC(SYSDATE,‘MM’) TRUNC_MM /*擷取當月第一天*/

,TRUNC(SYSDATE,‘RM’) TRUNC_RM /*擷取當月第一天*/

,TRUNC(SYSDATE,‘WW’) TRUNC_WW /*擷取當週第一天(參照當年1月1日的星期幾)ww Same day of the week as the first day of the year 按年度1月1日的第一天為每週第一天*/

,TRUNC(SYSDATE,‘IW’) TRUNC_IW /*擷取當週第一個工作日(週一),iw Same day of the week as the first day of the ISO week, which is Monday 每週一*/

,TRUNC(SYSDATE,‘W’) TRUNC_W /*擷取當週第一天,w Same day of the week as the first day of the month 按月份1日的第一天作為每週第一天*/

,TRUNC(SYSDATE,‘D’) TRUNC_D /*擷取當週第一天,即週日*/

,TRUNC(SYSDATE,‘DD’) TRUNC_DD /*擷取當天*/

,TRUNC(SYSDATE,‘DDD’) TRUNC_DDD /*擷取當天*/

,TRUNC(SYSDATE,‘J’) TRUNC_J /*擷取當天*/

,TRUNC(SYSDATE,‘DAY’) TRUNC_DAY /*擷取當週第一天,即週日*/

,TRUNC(SYSDATE,‘DY’) TRUNC_DY /*擷取當週第一天,即週日*/

,TRUNC(SYSDATE,‘HH’) TRUNC_HH /*擷取小時,12小時制*/

,TRUNC(SYSDATE,‘HH12’) TRUNC_HH12 /*擷取小時,12小時制*/

,TRUNC(SYSDATE,‘HH24’) TRUNC_HH24 /*擷取小時,24小時制*/

,TRUNC(SYSDATE,‘MI’) TRUNC_MI /*擷取分鐘*/

,‘-|-’分隔符

,TO_CHAR(SYSDATE,‘YYYY-MM-DD,HH24:MI:SS’) TO_CHAR_SYSDATE

,TO_CHAR(SYSDATE,‘SYYYY’) TO_CHAR_SYYYY /*年份,四位數字*/

,TO_CHAR(SYSDATE,‘YYYY’) TO_CHAR_YYYY /*年份,四位數字*/

,TO_CHAR(SYSDATE,‘YEAR’) TO_CHAR_YEAR /*年份,英文*/

,TO_CHAR(SYSDATE,‘SYEAR’) TO_CHAR_SYEAR /*年份,英文*/

,TO_CHAR(SYSDATE,‘YYY’) TO_CHAR_YYY /*年份,三位數字*/

,TO_CHAR(SYSDATE,‘YY’) TO_CHAR_YY /*年份,兩位數字*/

,TO_CHAR(SYSDATE,‘Y’) TO_CHAR_Y /*年份,一位數字*/

,TO_CHAR(SYSDATE,‘IYYY’) TO_CHAR_IYYY /*年份,四位數字*/

,TO_CHAR(SYSDATE,‘IY’) TO_CHAR_IY /*年份,兩位數字*/

,TO_CHAR(SYSDATE,‘I’) TO_CHAR_I /*年份,一位數字*/

,TO_CHAR(SYSDATE,‘Q’) TO_CHAR_Q /*本年第幾季*/

,TO_CHAR(SYSDATE,‘MONTH’) TO_CHAR_MONTH /*月份*/

,TO_CHAR(SYSDATE,‘MON’) TO_CHAR_MON /*月份*/

,TO_CHAR(SYSDATE,‘MM’) TO_CHAR_MM /*月份*/

,TO_CHAR(SYSDATE,‘RM’) TO_CHAR_RM /*月份,用羅馬數字表示*/

——,TO_CHAR(SYSDATE,‘WWW’) TO_CHAR_WW /*本年第幾周*/

,TO_CHAR(SYSDATE,‘WW’) TO_CHAR_WW /*本年第幾周*/

,TO_CHAR(SYSDATE,‘IW’) TO_CHAR_IW /*本年第幾周*/

,TO_CHAR(SYSDATE,‘W’) TO_CHAR_W /*本月第幾周*/

,TO_CHAR(SYSDATE,‘D’) TO_CHAR_D /*本週第幾日*/

,TO_CHAR(SYSDATE,‘DD’) TO_CHAR_DD /*日期*/

,TO_CHAR(SYSDATE,‘DDD’) TO_CHAR_DDD /*本年第幾日*/

,TO_CHAR(SYSDATE,‘J’) TO_CHAR_J

,TO_CHAR(SYSDATE,‘DAY’) TO_CHAR_DAY /*星期幾*/

,TO_CHAR(SYSDATE,‘DY’) TO_CHAR_DY /*星期幾*/

,TO_CHAR(SYSDATE,‘HH’) TO_CHAR_HH /*小時,12小時制*/

,TO_CHAR(SYSDATE,‘HH12’) TO_CHAR_HH12 /*小時,12小時制*/

,TO_CHAR(SYSDATE,‘HH24’) TO_CHAR_HH24 /*小時,24小時制*/

,TO_CHAR(SYSDATE,‘MI’) TO_CHAR_MI /*秒數*/

FROM DUAL

「ORACLE系列」日期資料的TO_CHAR()格式化轉換及TRUNC()擷取

執行結果