create or replace function ftcnvtdate( 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 ;