首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 自訂日期格式化函數範例:支援 YYYYMMDD、MM/DD/YYYY 等多種輸出

     編輯:DB2 教學

函數定義

CREATE FUNCTION ts_fmt(TS TIMESTAMP, fmt VARCHAR(20))
RETURNS VARCHAR(50)
RETURN
WITH tmp(dd,mm,yyyy,hh,mi,ss,nnnnnn) AS (
  SELECT
    SUBSTR(DIGITS(DAY(TS)),9),
    SUBSTR(DIGITS(MONTH(TS)),9),
    RTRIM(CHAR(YEAR(TS))),
    SUBSTR(DIGITS(HOUR(TS)),9),
    SUBSTR(DIGITS(MINUTE(TS)),9),
    SUBSTR(DIGITS(SECOND(TS)),9),
    RTRIM(CHAR(MICROSECOND(TS)))
  FROM SYSIBM.SYSDUMMY1
)
SELECT CASE fmt
  WHEN 'yyyymmdd'       THEN yyyy || mm || dd
  WHEN 'mm/dd/yyyy'     THEN mm || '/' || dd || '/' || yyyy
  WHEN 'yyyy/dd/mm hh:mi:ss' THEN yyyy || '/' || mm || '/' || dd || ' ' || hh || ':' || mi || ':' || ss
  WHEN 'nnnnnn'         THEN nnnnnn
  ELSE 'date format ' || COALESCE(fmt,'') || ' not recognized.'
END
FROM tmp;

設計亮點

  • 使用 CTE (Common Table Expression) 一次性擷取所有元件。
  • CASE 表達式靈活擴充格式,新增格式只需加 WHEN 子句。
  • 輸入格式不支援時回傳友善錯誤訊息。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved