zoukankan      html  css  js  c++  java
  • TransactSQL处理中文日期

    前一段时间,有网友问及中文日期的问题http://www.cnblogs.com/insus/articles/2012048.html,原来最终要求是需要在SQL中处理。

    刚才整理了一下。把它写成一个SQL函数,需要时调用即可,下面为函数代码,仅供参考: 

    View Code
    CREATE FUNCTION [dbo].[udf_ConvertToChineseDate]
    (
        
    @Date DATETIME    
    )
    RETURNS NVARCHAR(20)
    AS
    BEGIN
        
    --定义一个表变量
        DECLARE @Digital TABLE([D1] [TINYINT] NOT NULL,[D2] [nvarchar](2NOT NULL,[D3] [nvarchar](2NOT NULL)
        
    --把值填充
        INSERT INTO @Digital VALUES(0,N'',N''),(1,N'',N''),(2,N'',N''),(3,N'',N''),(4,N'',N''),(5,N'',N''),
        (
    6,N'',N''),(7,N'',N''),(8,N'',N''),(9,N'',N'')
        
        
    --处理接收的变量值转换为xxxx-xx-xx日期格式
        DECLARE @string NVARCHAR(20=  CONVERT(varchar(20),@Date,23)
        
    --处理时一个临理变量
        DECLARE @dumpString NVARCHAR(20= ''
        
    DECLARE @i INT = 1
        
    --循环字符串
        WHILE @i <= LEN(@string)
        
    BEGIN    
            
    DECLARE @dump  NVARCHAR(2= SUBSTRING(@string,@i,1)    
            
    --判断是否为数字
            IF (@dump LIKE '[0-9]')
            
    BEGIN         
                
    IF (@dump = 0 AND (@i = 6 OR @i = 9)) --如果第6位和第9位为0省略  
                SET @dumpString += N''
                
    ELSE          
                
    SET @dumpString += (SELECT [D2] FROM @Digital WHERE [D1] = @dump)        
            
    END
            
    ELSE
            
    BEGIN
                
    IF @i = 5
                
    SET @dumpString += N''
                
    IF  @i = 8
                
    SET @dumpString += N''        
            
    END
            
    SET @i = @i + 1    
        
    END
        
    RETURN @dumpString + N''
    END

    演示:

    SELECT [dbo].[udf_ConvertToChineseDate] (CURRENT_TIMESTAMP)

    结果:

  • 相关阅读:
    原型,原型对象,原型链,构造函数,继承(一)
    暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统
    ANDROID自定义视图——onMeasure流程,MeasureSpec详解
    android 中发送短信
    VelocityTracker简介
    Android xml资源文件中@、@android:type、@*、?、@+含义和区别
    android:id="@+id/android:empty属性的用法举例
    Android ProgressBar详解以及自定义
    Android自定义进度条
    布局技巧:使用ViewStub
  • 原文地址:https://www.cnblogs.com/insus/p/2017304.html
Copyright © 2011-2022 走看看