公司的程序员在写代码的时候出了问题,将用户生产环境的一个日期字段改成了英文,无奈之后写个函数刷一下,功能是将英文的日期字段刷新为正常日期。
Create Or Replace Function En_To_Ch(En_Date String) Return Varchar2 Is
Ch_Date Varchar2(400);
/***************************************************************************************************
*
*根据英文日期时间返回阿拉伯日期时间
* 2007-11-09 by zero
***************************************************************************************************/
--数组变量--
Ch_Year Varchar2(20); --年度
Ch_Month Varchar2(20); --月份
Ch_Day Varchar2(20); --日期
Ch_Time Varchar2(20); --时间
Loc_Timezone Varchar2(10); --时区
Ch_Week Varchar2(42); --星期
Begin
Select To_Char(Substr(En_Date, -4)) Into Ch_Year From Dual;
Select To_Char(Decode(Substr(En_Date, 5, 3),
'Jan',
'01',
'Feb',
'02',
'Mar',
'03',
'Apr',
'04',
'May',
'05',
'Jun',
'06',
'Jul',
'07',
'Aug',
'08',
'Sep',
'09',
'Dec',
'12',
'Nov',
'11',
'Oct',
'10'))
Into Ch_Month
From Dual;
Select To_Char(Substr(En_Date, 9, 2)) Into Ch_Day From Dual;
Select Substr(En_Date, 12, 8) Into Ch_Time From Dual;
Select To_Char(Substr(En_Date, -4)) Into Ch_Year From Dual;
Select To_Char(Substr(En_Date, -4)) Into Ch_Year From Dual;
Select Dbtimezone Into Loc_Timezone From Dual;
Select Decode(Substr(En_Date, 1, 3),
'Mon',
'一',
'Tue',
'二',
'Wed',
'三',
'Thu',
'四',
'Fri',
'五',
'Sat',
'六',
'Sun',
'日')
Into Ch_Week
From Dual;
Select Ch_Year || '-' || Ch_Month || '-' || Ch_Day || ' ' || Ch_Time ||
' 星期' || Ch_Week || ' ' || Loc_Timezone || '区'
Into Ch_Date
From Dual;
Return Ch_Date;
End En_To_Ch;
/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/79499/viewspace-439/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/79499/viewspace-439/