sqlserver年月日转汉字大写--自定义函数--繁体

时间:2023-01-08 09:18:49

两个自定义函数结合

函数一:

create  function convertNumToChinese
(@instr varchar(2))
returns varchar(2)
as
begin
declare @temStr varchar(2)
if @instr = '' set @temStr = '壹'
if @instr ='' set @temStr = '贰'
if @instr ='' set @temStr = '叁'
if @instr ='' set @temStr = '肆'
if @instr ='' set @temStr = '伍'
if @instr ='' set @temStr = '陆'
if @instr ='' set @temStr = '柒'
if @instr ='' set @temStr = '捌'
if @instr ='' set @temStr = '玖'
if @instr ='' set @temStr = '零'
return @temstr
end

函数二:

create  function [dbo].[fn_convertDateToChineseDX]
(@vdate datetime)
returns varchar(50)
AS
BEGIN
declare @vYear varchar(20)
declare @vMonth varchar(20)
declare @vDay varchar(20)
declare @temstr varchar(100) set @temstr = ''
set @vYear = datename(yyyy,@vdate)
--print @vyear
set @vMonth = datename(mm,@vdate)
--print @vMonth
set @vDay = datename(dd,@vdate)
--print 'v'+@vDay
-- 开始计算年份
set @temstr = dbo.convertNumToChineseDX(substring(@vYear,1,1))
set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vYear,2,1))
set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vYear,3,1))
set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vYear,4,1))
set @temstr = @temstr + '年' -- 开始计算月份
if substring(@vMonth,1,1) = ''
set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vMonth,2,1))
else
begin
if substring(@vMonth,2,1) = ''
set @temstr = @temstr + '拾'
else
set @temstr = @temstr +'壹拾'+ dbo.convertNumToChineseDX(substring(@vMonth,2,1))
end set @temstr = @temstr + '月' -- 开始计算日期 if convert(int,@vDay) < 10
set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vDay,1,1))
else
begin
if substring(@vDay,2,1) = ''
begin
if substring(@vDay,1,1)<> ''
set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vDay,1,1)) + '拾'
else
set @temstr = @temstr + '拾'
end
else
begin
if substring(@vDay,1,1) <> ''
set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vDay,1,1)) + '拾' + dbo.convertNumToChineseDX(substring(@vDay,2,1))
else
set @temstr = @temstr + '壹拾' + dbo.convertNumToChineseDX(substring(@vDay,2,1))
end
end
set @temstr = @temstr + '日'
RETURN @temstr
END

调用:

select [dbo].[fn_convertDateToChineseDX]('2017/11/08')

结果:

sqlserver年月日转汉字大写--自定义函数--繁体

随机推荐

  1. MyBatis缓存禁用失败

    问题:MyBatis缓存无法禁用,同一个session的select查询结果一样,但是数据库其实已改变. 尝试达到想要的目的: 1.msgmapper.xml里的select标签加上 <sele ...

  2. tornado--SESSION框架,一致性hash,分布式存储

    预备知识 tornado框架session要自己写 cookie存储在客户端浏览器上,session数据放在服务器上 session依赖cookie 扩展tornado,返回请求前自定义session ...

  3. mysql均衡负载

    一.利用mysql 复制分流查询操作: 利用mysql的主从复制可以有效的分流更新操作和查询操作,具体的实现是一个主服务器,承担更新操作,多台从服务器,承担查询操作,主从之间通过复制实现数据的同步.多 ...

  4. Sublime Text 添加到右键菜单 带菜单图标

    1.打开 regedit 2.找到节点 HKEY_CLASSSES_ROOT -> * -> Shell 3.右键选择新建“ 项 ” 这个项的名字将作为右键菜单的菜单名称,我用的“ Sub ...

  5. webapp 1px显示两倍的问题

    公司最近换新首页,按照设计师的要求<大家都在逛>的分割线要1个像素. .span-3{ width:33.3333%; &:not(:first-child){ &:bef ...

  6. Uva 11077 Find the Permutations &lbrack;置换群 DP&rsqb;

    题意: 给定$n$和$k$,问有多少排列交换$k$次能变成升序 $n \le 21$ $uva$貌似挂掉了$vjudge$上一直排队 从某个排列到$1,2,...,n$和从$1,2,...,n$到某个 ...

  7. js 实现 0-9 随机排序

    function randomsort(a, b) {return Math.random()>0.5 ? -1 : 1;//用Math.random()函数生成0~1之间的随机数与0.5比较, ...

  8. Java ServiceLoader&lpar;SPI&rpar;学习

    1. 几个不错的关于ServiceLoader的文章,大家可以先参考一下 1) http://www.myexception.cn/program/1355384.html 这篇的后面的问题分析不错 ...

  9. &lbrack;转&rsqb;Teleport Ultra&sol;Teleport Pro的冗余代码批量清理方法

    原文地址:http://www.abcd9.com/?post=402 Teleport Pro 是款优秀的网站离线浏览工具(即网站整站下载工具),Teleport Ultra是其增强版,但使用此系列 ...

  10. 《梦断代码Dreaming In Code》阅读笔记(一)

    第0章!干得漂亮! 这是我看到这本书冒出来的第一个想法.身为计算机系的学生,对于从0开始的任何事情,都感到格外亲切. 进入阅读之后,疑惑.惊讶.感叹渐渐取代了之前轻松的心情,原来做软件竟是攀越一座又一 ...