CREATE FUNCTION datediff
(in_type varchar(5),in_sdate integer, in_edate integer )
RETURNING integer ;
DEFINE p_sdate date;
DEFINE p_edate date;
DEFINE p_day integer;
--如果國曆日期有誤,一律傳回NULL
BEGIN
ON EXCEPTION
LET p_day = null::integer;
END EXCEPTION
--判別是否為民國前
IF in_sdate < 0 THEN
LET in_sdate = ABS(in_sdate)+19110000- ROUND(ABS(in_sdate/10000))*20000;
ELSE
LET in_sdate = in_sdate + 19110000;
END IF ;
IF in_edate < 0 THEN
LET in_edate = ABS(in_edate)+19110000- ROUND(ABS(in_edate/10000))*20000;
ELSE
LET in_edate = in_edate + 19110000;
END IF ;
--轉為西元日期
SELECT (TO_DATE((in_edate)::char(8),'%Y%m%d'))
, (TO_DATE((in_sdate)::char(8),'%Y%m%d'))
INTO p_edate,p_sdate
FROM empty;
IF UPPER(in_type) IN ('DAY','D') THEN
LET p_day = p_edate - p_sdate;
ELSE IF UPPER(in_type) IN ('MONTH','M') THEN
LET p_day = ((YEAR(p_edate) - YEAR(p_sdate)) * 12) +
(MONTH(p_edate) - MONTH(p_sdate));
ELSE IF UPPER(in_type) IN ('YEAR','Y') THEN
LET p_day = YEAR(p_edate) - YEAR(p_sdate) ;
END IF; END IF; END IF;
END;
RETURN p_day;
END FUNCTION;
2013年8月28日 星期三
訂閱:
張貼留言 (Atom)
自動記錄滑鼠點選操作
為了一個需求,需要人工去點選幾個滑鼠的點選行為,找了幾種工具,覺得GS Auto Clicker最實用,極符合我的需求,尤其是多個固定位置的button點擊,解決了一個很耗時間的工作。 最後設定完預設hotkey F8為啟用鍵,就可以開始自動做工了。再按F8結束工作。 GS Au...
-
上網找了免費的白箱檢測工具,找到了 puma scan 因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....) 更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。 ht...
-
建了一個工作排程,定時執行batch檔。 batch中寫了一段xcopy,主要針對有異動較新檔案時才複製。 echo off for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find...
-
改用SQL Server Management Studio 2017有一段時間了。 在執行一段之前寫的SQL要組出一段語法時,里頭包含了使用CHAR(10)當作換行符號的文字,在輸出結果中,使用複製貼上的方式要進行執行時,發現換行符號都失效了。 但如果使用Results...
沒有留言:
張貼留言