DELIMITER // CREATE OR REPLACE FUNCTION cloud_addtime( p_date_utc DATETIME ) /* Function : 因為所有的雲端主機, 都是存 UTC, 要 -8 換為 Taipei 時間 Description: 1.如果有多國的來源, 這個方法並不徹底, 目前先暫用 2.目前測試 -8 看起來就正常 3.這個 udf 只是單純地在 select xx日期 時, 將時間 -8 hrs, 並不會異動資料庫的內容 純粹是配合 Azure Cloud 主機的運作而已 SELECT cloud_addtime(NOW()) Build Date : 2022/12/03 Modify History Item Who Date Modify Docs ==== ========== ========== ================================================ 1 Michael 2022/12/03 Init */ RETURNS DATETIME DETERMINISTIC BEGIN DECLARE v_date_taipei DATETIME; DECLARE v_diff SMALLINT; -- 從系統參數取得時差,預設為8小時 SELECT pvalue INTO v_diff FROM sys_parameter WHERE systemid = 'sys' AND pid = 'diff_hours'; IF v_diff IS NULL THEN SET v_diff = 8; END IF; -- 將UTC時間轉換為台北時間 SET v_date_taipei = DATE_SUB(p_date_utc, INTERVAL v_diff HOUR); RETURN v_date_taipei; END // DELIMITER ;