zoukankan      html  css  js  c++  java
  • 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

    结果:

  • 相关阅读:
    JQuery批量图片上传插件—Uploadify使用记录
    SQL2008 附加数据库提示 5120错误
    enter the full pathname for java.exe
    共享文件夹设置
    曾经运行该线程的应用程序域已卸载
    无法打开物理文件 。操作系统错误 5:"5(拒绝访问。)"。 消息 5120,级别 16,状态 101
    开篇一个码农,一个苦逼的码农生活经历
    POI 3.17 读取Excel(模板)、导出Excel
    Java微信支付开发之关闭订单
    Linux下安装 MySQL5.7.28
  • 原文地址:https://www.cnblogs.com/zjfblog/p/7803484.html
Copyright © 2011-2022 走看看