公司內發生的 bug,因為變成 SET DATE 環境日期設定,從 Taiwan 改為 YMD,導致 CTOD() 轉換日期異常,導致一連串錯誤,用段 Code 來記錄該情況
lcMonth = "10912"
lcYY = SUBSTR(lcMonth,1,3)
lcMM = SUBSTR(lcMonth,4,2)
SET DATE YMD
ldYMDDate = CTOD(lcYY + "/" + lcMM + "/01")
ldYMDYear = YEAR(ldYMDDate)
SET DATE TAIWAN
ldTAIWANDDate = CTOD(lcYY + "/" + lcMM + "/01")
ldTAIWANDYear = YEAR(ldTAIWANDDate)
TEXT TO lcMessage TEXTMERGE NOSHOW PRETEXT 2
SET DATE YMD
CTOD 轉日期:<<ldYMDDate>>
取出西元年:<<ldYMDYear>>
SET DATE TAIWAN
CTOD 轉日期:<<ldTAIWANDDate>>
取出西元年:<<ldTAIWANDYear>>
ENDTEXT
MESSAGEBOX(lcMessage , 0 + 64 , "測試結果")
從下圖就可以發現,YMD 變成西元 109 年,Taiwan 則是西元 2020 年
因為 CTOD() 會受 SET DATE 影響,所以建立一律改為用 DATE() 來轉日期,避免困惱
沒有留言:
張貼留言