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)
VS CODE離線安裝套件方式-續
去年 vscode離線安裝 powershell nupkg 今年在一台無外網的 windwos 2025上安裝時遇到了powershell版本一直讀取到了5.1的版本,鬼打牆了一下午,在VM還原重測測了好幾回,應該是可行了。 將下載到的免安裝powershell 解壓縮到...
-
一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...
-
freeFTPd是套免費的SFTP SERVER支援22 port SFTP及21port FTP,一般找到免費的都不支援SFTP只有技援FTPS。 之前一直有個困擾在幾台主機安裝後,有幾台重開機後,SFTP SERVER必須手動去啟動,一直以來老是搞不懂為什麼,今天看到一篇文...
-
Row.Cells[2].Text == "abc" ? "ok" : "not ok" ; 或加入Microsoft. VisualBasic 參考使用 vb namespace using Microsoft...
沒有留言:
張貼留言