开博了。其实之前有的,只是不在pub上,最近实在忍受不了msn共享空间了。

英文日期转为中文日期

上一篇 / 下一篇  2007-12-12 12:09:27 / 个人分类:读书笔记

公司的程序员在写代码的时候出了问题,将用户生产环境的一个日期字段改成了英文,无奈之后写个函数刷一下,功能是将英文的日期字段刷新为正常日期。


Create Or Replace Function En_To_Ch(En_Date String) Return Varchar2 Is
Ch_Date Varchar2(400);
/***************************************************************************************************
*
*根据英文日期时间返回阿拉伯日期时间
*<author> 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;
/

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 4135
  • 日志数: 139
  • 图片数: 1
  • 建立时间: 2007-12-10
  • 更新时间: 2008-08-01

RSS订阅

Open Toolbar