1. 程式人生 > >sqlserver年月日轉漢字大寫

sqlserver年月日轉漢字大寫

style substr 結果 returns function eight tar dbo lec

也是今天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

結果:

技術分享

sqlserver年月日轉漢字大寫