博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 学习系列之五
阅读量:6821 次
发布时间:2019-06-26

本文共 1968 字,大约阅读时间需要 6 分钟。

   

    

     

 

     

 

     

 

     

 

      很多初学者会为日期格式的输出很困惑,如何得到想要的时间格式呢?convert()函数变换无穷,给我们带来困惑,用convert(char(10),getdate(),@int)函数的类型值输出格式由参数@int控制,可以编写一个存储过程,不用记忆,方便查询,关键代码如下:

1 -- ============================================= 2 -- Author:        zhangbc     3 -- Create date: 2013-10-19 4 -- Description:    检测convert(char(10),getdate(),1)函数的类型值输出格式 5 -- ============================================= 6 ALTER PROCEDURE [dbo].[Getconvert]  7     ( 8         @startFlg INT, 9         @endFlg INT,10         @condiition CHAR(1000)='1=1'11     )12 AS13 BEGIN14     -- SET NOCOUNT ON added to prevent extra result sets from15     -- interfering with SELECT statements.16     SET NOCOUNT ON;17     IF(@startFlg>@endFlg)18      BEGIN19          SELECT '开始数字大于结束数字,顺序不对,请更正!' as ErrorMessage20      END    21     ELSE22     BEGIN23     CREATE TABLE #t24     ( flg INT,25       date NVARCHAR(100),26       txt TEXT DEFAULT NULL27     )28     DECLARE 29         @date NVARCHAR(100),30         @cn NVARCHAR(4000)='无效类型值有:',31         @ErrorMessage NVARCHAR(100),32         @sql CHAR(1000)33     WHILE (@startFlg<=@endFlg)34      BEGIN35          --捕获异常状态36        BEGIN TRY37          SET @date=convert(char(20),getdate(),@startFlg)38          INSERT INTO #t VALUES (@startFlg ,@date,NULL)39        END TRY40        BEGIN CATCH41          SET @ErrorMessage=ERROR_MESSAGE()42          SET @cn=@cn+' '+replace(CAST(@startFlg AS NVARCHAR(4000)),'','')43        END CATCH;44        set @startFlg=@startFlg+145      END   46     INSERT INTO #t VALUES (@endFlg+1,@ErrorMessage,cast(@cn AS TEXT))47     --SELECT @cn,@ErrorMessage48     SET @sql='SELECT * FROM #t where '+@condiition49     EXEC(@sql)50     DROP TABLE #t                51    END
View Code

     测试一:

exec [Getconvert] 1000,100
View Code

     截图如下:

      测试二:

exec [Getconvert] 10,20
View Code

      截图如下:

       一看便知,解释都是多余的,有心人可以学习一下SQL中捕捉异常的方法,在SQL使用真心不多见,但对规避程序风险好处还是大大的,本文就是一个很好的体现;另外,convert()函数功能还是很强大的,值得深入学习。此篇文章也是对做了一下拓展,祝有心人好运!

转载于:https://www.cnblogs.com/zhangbc/p/3439659.html

你可能感兴趣的文章
Java集合<8> (Map)
查看>>
Linux chmod命令详解
查看>>
kubernetes部署rabbitmq集群
查看>>
机器学习基础---最大似然估计
查看>>
使用xtrabackup备份mysql8.0.16
查看>>
安装apache遇到的几个错误及解决办法 [error] Apache2.2: Service is already installed.
查看>>
Spring Security源码分析一:Spring Security认证过程
查看>>
Dubbo环境搭建
查看>>
[数据结构]插入排序与希尔排序
查看>>
如何高效利用GitHub
查看>>
Server-sent Event 简单介绍
查看>>
nginx 常用的几个命令
查看>>
解决命令行的乱码以及编码的问题
查看>>
python naming convention
查看>>
Linux 程序获取环境变量
查看>>
Kettle资源库的创建及密码修改
查看>>
NASA顶级程序员编程十大原则
查看>>
Linux Kernel 4.14 LTSI正式推出
查看>>
NodeJS基础
查看>>
Jquery与js原生
查看>>