sqlserver年月日转汉字大写--自定义函数--繁体
两个自定义函数结合
函数一:
create function convertNumToChinese (@instr varchar(2)) returns varchar(2) as begin declare @temStr varchar(2) if @instr = '1' set @temStr = '壹' if @instr ='2' set @temStr = '贰' if @instr ='3' set @temStr = '叁' if @instr ='4' set @temStr = '肆' if @instr ='5' set @temStr = '伍' if @instr ='6' set @temStr = '陆' if @instr ='7' set @temStr = '柒' if @instr ='8' set @temStr = '捌' if @instr ='9' set @temStr = '玖' if @instr ='0' 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) = '0' set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vMonth,2,1)) else begin if substring(@vMonth,2,1) = '0' 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) = '0' begin if substring(@vDay,1,1)<> '1' set @temstr = @temstr + dbo.convertNumToChineseDX(substring(@vDay,1,1)) + '拾' else set @temstr = @temstr + '拾' end else begin if substring(@vDay,1,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')
结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2016-11-08 php根据IP获取经纬度信息--百度地图篇
2016-11-08 drupal7 上传文件中文乱码