create or replace FuncTion ft_cnvtdate( adtm_date date , ai_option number ) return VarChar2 is ls_preday VarChar2(10); ls_day VarChar2(5); ls_premth VarChar2(10); ls_mth VarChar2(30); ls_preyr VarChar2(5); ls_yr VarChar2(4); ls_date VarChar2(70); begin if adtm_date is null then return null; end if; ls_preday := ''; ls_preyr := ''; ls_day := to_char( adtm_date , 'dd' ); ls_mth := to_char( adtm_date , 'mm' ); ls_yr := to_char( to_number( to_char( adtm_date , 'yyyy' ) ) + 543 ); /* เป็น 1 ก็ให้แปลงแค่ปี 18/05/2013 --> 18/05/2556 เป็น 2 ก็ให้แปลงเดือนด้วย 18/05/2013 --> 18 พ.ค. 2556 เป็น 3 ก็ให้แปลงเดือนด้วย 18/05/2013 --> 18 พฤษภาคม 2556 เป็น 4 ก็ให้แปลงแบบใส่ตำแหน่ง 18/05/2013 --> วันที่ 18 เดือนพฤษภาคม พ.ศ. 2556 เป็น 5 ก็ให้แปลงแบบไทยเต็มยศเลย 18/05/2013 --> ๑๘ พฤษภาคม พ.ศ. ๒๕๕๖ เป็น 10 แสดงเดือนแบบย่อ พ.ค. เป็น 11 แสดงเดือนแบบเต็ม พฤษภาคม */ If ai_option = 2 or ai_option = 10 Then Case ls_mth When '01' Then ls_mth := 'ม.ค.' ; When '02' Then ls_mth := 'ก.พ.' ; When '03' Then ls_mth := 'มี.ค.' ; When '04' Then ls_mth := 'เม.ย.' ; When '05' Then ls_mth := 'พ.ค.' ; When '06' Then ls_mth := 'มิ.ย.' ; When '07' Then ls_mth := 'ก.ค.' ; When '08' Then ls_mth := 'ส.ค.' ; When '09' Then ls_mth := 'ก.ย.' ; When '10' Then ls_mth := 'ต.ค.' ; When '11' Then ls_mth := 'พ.ย.' ; When '12' Then ls_mth := 'ธ.ค.' ; Else ls_mth := '' ; End Case; End If; If ai_option = 3 or ai_option = 4 or ai_option = 5 or ai_option = 11 Then Case ls_mth When '01' Then ls_mth := 'มกราคม' ; When '02' Then ls_mth := 'กุมภาพันธ์' ; When '03' Then ls_mth := 'มีนาคม' ; When '04' Then ls_mth := 'เมษายน' ; When '05' Then ls_mth := 'พฤษภาคม' ; When '06' Then ls_mth := 'มิถุนายน' ; When '07' Then ls_mth := 'กรกฏาคม' ; When '08' Then ls_mth := 'สิงหาคม' ; When '09' Then ls_mth := 'กันยายน' ; When '10' Then ls_mth := 'ตุลาคม' ; When '11' Then ls_mth := 'พฤศจิกายน' ; When '12' Then ls_mth := 'ธันวาคม' ; Else ls_mth := '' ; End Case; End If; Case ai_option When 1 Then ls_day := trim( ls_day ) || '/' ; ls_mth := trim( ls_mth ) || '/' ; When 2 Then ls_day := trim( to_char( to_number( ls_day ) ) ) || ' ' ; ls_mth := trim( ls_mth ) || ' ' ; When 3 Then ls_day := trim( to_char( to_number( ls_day ) ) ) || ' ' ; ls_mth := trim( ls_mth ) || ' ' ; When 4 Then ls_preday := 'วันที่ ' ; ls_day := trim( to_char( to_number( ls_day ) ) ) || ' ' ; ls_premth := 'เดือน' ; ls_mth := trim( ls_mth ) || ' ' ; ls_preyr := 'พ.ศ. ' ; ls_yr := trim( ls_yr ) ; When 10 Then ls_day := '' ; ls_yr := '' ; When 11 Then ls_day := '' ; ls_yr := '' ; Else ls_day := trim( ls_day ) || '/' ; ls_mth := trim( ls_mth ) || '/' ; End Case; ls_date := ls_preday || ls_day || ls_premth || ls_mth || ls_preyr || ls_yr ; return trim(ls_date); end ; /