日期转换为中文大写

开发 开发工具
博主发表的文章,有的是自己原创,有的是这些年本人从网上积累的,方便大家学习。

 [[178880]]

  1. ALTER FUNCTION GetCNDay 
  2.  @dt 
  3. RETURNS Nvarchar(50) 
  4. AS 
  5. BEGIN 
  6.  DECLARE @str Nvarchar(50) -- 中间字符串,用于存储***次转换之后的日期字符 
  7.  DECLARE @Year Int,@Month Int,@Day Int -- 获取函数传入的时间参数的年月日的值 
  8.  DECLARE @strYear Nvarchar(50),@strMonth Nvarchar(50),@strDay Nvarchar(50) -- 中间字符串,分别用于存储***次转换之后的年月日字符串 
  9.  declare @e Nvarchar(10),@n Nvarchar(10),@index Int,@result Nvarchar(50) -- @e,@n和@index用于字符串比对,将@e中@index位置出现的字符替换成@n中@index位置的字符,@result用于存储最终处理完成的日期字符串,并作为返回结果 
  10.  SELECT @e='0123456789',@n='〇一二三四五六七八九',@index=1 
  11.  SET @Year = Year(@dt) 
  12.  SET @Month = Month(@dt) 
  13.  SET @Day = Day(@dt) 
  14.  -- 生成年 
  15.  SET @strYear = Cast(@Year AS Nvarchar(50)) + '年' 
  16.  -- 生成月 
  17.  IF(@Month < 10) 
  18.  SET @strMonth = Cast(@Month AS Nvarchar(50)) 
  19.  ELSE IF(@Month = 10) 
  20.  SET @strMonth = '十' 
  21.  ELSE IF(@Month > 10) 
  22.  SET @strMonth = '十' + Cast((@Month - 10) AS Nvarchar(50)) 
  23.  SET @strMonth = @strMonth + '月' 
  24.  -- 生成日 
  25.  IF(@Day < 10) 
  26.  SET @strDay = Cast(@Day AS Nvarchar(50)) 
  27.  ELSE IF(@Day = 10) 
  28.  SET @strDay = '十' 
  29.  ELSE IF(@Day > 10 AND @Day < 20) 
  30.  SET @strDay = '十' + Cast((@Day - 10) AS Nvarchar(50)) 
  31.  ELSE IF(@Day = 20) 
  32.  SET @strDay = '二十' 
  33.  ELSE IF(@Day > 20 AND @Day < 30) 
  34.  SET @strDay = '二十' + Cast((@Day - 20) AS Nvarchar(50)) 
  35.  ELSE IF(@Day = 30) 
  36.  SET @strDay = '三十' 
  37.  ELSE IF(@Day = 31) 
  38.  SET @strDay = '三十一' 
  39.  SET @strDay = @strDay + '日' 
  40.  -- 拼接年月日 
  41.  SET @str = @strYear + @strMonth + @strDay 
  42.  WHILE @index<=Len(@str) 
  43.  BEGIN 
  44.  DECLARE @s Nvarchar(1) 
  45.  SET @s=SubString(@str,@index,1) 
  46.  IF CharIndex(@s,@e)>0 
  47.  SET @result=IsNull(@result,'')+SubString(@n,CharIndex(@s,@e),1) 
  48.  ELSE 
  49.  SET @result=IsNull(@result,'')+@s 
  50.  SET @index=@index+1 
  51.  END 
  52.  RETURN @result 
  53. END 
  54. GO 

【本文是51CTO专栏作者张勇波的原创文章,转载请通过51CTO获取作者授权】

责任编辑:武晓燕 来源: 上下求索的Z先生博客
相关推荐

2010-11-26 14:09:32

MySQL内置函数

2009-07-31 14:09:41

c#时间格式转换

2010-10-27 13:25:33

Oracle查询

2016-12-14 09:15:29

数字转换中文

2011-04-14 13:29:42

Oracle日期转换

2021-08-30 07:22:15

Go类型interface

2015-11-24 09:53:22

AngularJSXMLJSON

2023-05-05 00:19:22

2016-12-13 13:50:06

JAVA转换Base64

2010-09-06 16:07:21

SQL函数

2023-08-25 14:47:56

TransFLACFLAC

2022-05-19 09:01:08

TypeScript元组对象

2021-09-04 17:26:31

SpringBoot转换器参数

2011-03-10 14:28:45

Access2007日期大写

2010-09-16 13:22:03

Sql Server日

2010-04-29 12:23:58

Oracle 获取系统

2020-04-06 20:30:37

JavaScriptBoolean开发

2022-12-25 16:15:38

HTMLJava可视化文档

2011-06-29 11:53:54

WPS表格

2010-10-25 17:17:50

Oracle日期转换函
点赞
收藏

51CTO技术栈公众号