sqlserver年月日转汉字大写

也是今天sql群里有人问,看起来这个问题挺简单,但是我不知道具体该怎么实现。百度了一把,找到一个高手贡献的答案,记一下。

参考链接 sql中转换中文日期

------ 配合相关函数 ------
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 procedure convertDateToChinese
@vdate datetime,@ChineseDateStr varchar(50) out
as
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.convertNumToChinese(substring(@vYear,1,1))
set @temstr = @temstr + dbo.convertNumToChinese(substring(@vYear,2,1))
set @temstr = @temstr + dbo.convertNumToChinese(substring(@vYear,3,1))
set @temstr = @temstr + dbo.convertNumToChinese(substring(@vYear,4,1))
set @temstr = @temstr + ''
 
-- 开始计算月份
if substring(@vMonth,1,1) = '0'
set @temstr = @temstr + dbo.convertNumToChinese(substring(@vMonth,2,1))
else
begin
 if substring(@vMonth,2,1) = '0'
   set @temstr = @temstr + ''
 else
   set @temstr = @temstr +''+ dbo.convertNumToChinese(substring(@vMonth,2,1))
end
 
set @temstr = @temstr + ''
 
-- 开始计算日期
 
if convert(int,@vDay) < 10 
  set @temstr = @temstr +  dbo.convertNumToChinese(substring(@vDay,1,1))
else
begin
  if substring(@vDay,2,1) = '0'
    begin 
     if  substring(@vDay,1,1)<> '1'
       set  @temstr = @temstr +  dbo.convertNumToChinese(substring(@vDay,1,1)) + ''
      else
        set @temstr = @temstr +  ''
     end
  else
    begin
     if substring(@vDay,1,1) <> '1'
       set @temstr = @temstr  +  dbo.convertNumToChinese(substring(@vDay,1,1)) + '' + dbo.convertNumToChinese(substring(@vDay,2,1))
     else
        set @temstr = @temstr + '' + dbo.convertNumToChinese(substring(@vDay,2,1))
    end
end
set @temstr = @temstr +  ''  
print @temstr
set @ChineseDateStr = @temstr
View Code

调用方法:

declare @str_format varchar(30);
exec convertDateToChinese '2017-11-08 13:30',@str_format output
select @str_format

结果:

 

转载于:https://www.cnblogs.com/zjfblog/p/7803484.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值