SQL Server 学习系列之五

SQL Server 学习系列之一(薪酬方案+基础)

SQL Server 学习系列之二(日期格式问题)

SQL Server 学习系列之三(SQL 关键字)

SQL Server 学习系列之四(存储引擎笔记)

很多初学者会为日期格式的输出很困惑,如何得到想要的时间格式呢?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 AS
13 BEGIN
14     -- SET NOCOUNT ON added to prevent extra result sets from
15     -- interfering with SELECT statements.
16     SET NOCOUNT ON;
17     IF(@startFlg>@endFlg)
18      BEGIN
19          SELECT '开始数字大于结束数字,顺序不对,请更正!' as ErrorMessage
20      END
21     ELSE
22     BEGIN
23     CREATE TABLE #t
24     ( flg INT,
25       date NVARCHAR(100),
26       txt TEXT DEFAULT NULL
27     )
28     DECLARE
29         @date NVARCHAR(100),
30         @cn NVARCHAR(4000)='无效类型值有:',
31         @ErrorMessage NVARCHAR(100),
32         @sql CHAR(1000)
33     WHILE (@startFlg<=@endFlg)
34      BEGIN
35          --捕获异常状态
36        BEGIN TRY
37          SET @date=convert(char(20),getdate(),@startFlg)
38          INSERT INTO #t VALUES (@startFlg ,@date,NULL)
39        END TRY
40        BEGIN CATCH
41          SET @ErrorMessage=ERROR_MESSAGE()
42          SET @cn=@cn+' '+replace(CAST(@startFlg AS NVARCHAR(4000)),'','')
43        END CATCH;
44        set @startFlg=@startFlg+1
45      END
46     INSERT INTO #t VALUES (@endFlg+1,@ErrorMessage,cast(@cn AS TEXT))
47     --SELECT @cn,@ErrorMessage
48     SET @sql='SELECT * FROM #t where '+@condiition
49     EXEC(@sql)
50     DROP TABLE #t
51    END

View Code

测试一:

exec [Getconvert] 1000,100

View Code

截图如下:

测试二:

exec [Getconvert] 10,20

View Code

截图如下:

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

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

SQL Server 学习系列之五相关推荐

  1. 【SQL Server 学习系列】-- sql 随机生成中文名字

    [SQL Server 学习系列]-- sql 随机生成中文名字 原文:[SQL Server 学习系列]-- sql 随机生成中文名字 1 DECLARE @fName TABLE(Id INT I ...

  2. [学习SQL SERVER 2005系列]图解SQL SERVER2005的安装

    [学习SQL SERVER 2005系列]图解SQL SERVER2005的安装 前言: [学习SQL SERVER 2005系列]准备把学习2005的一些心得整理出来,和大家分享,共同学习一起提高. ...

  3. [转]推荐国外SQL Server学习网站

    由于SQL Server在国外的应用比较成熟,因此国外的SQL Server的优秀学习站点很多,下面几个是自己长期关注的,里面的文章原创性高.知识性强,实在是学习SQL Server "居家 ...

  4. sql server学习路径地址

    联机丛书2005:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms130214(v=sql.90) 联 ...

  5. SQL Server 管理系列课程-王进-专题视频课程

    SQL Server 管理系列课程-1508人已学习 课程介绍         SQL Server 2012管理课程主要更好的管理和维SQL Server 2012,内容包含了基本的数据库的创建.表 ...

  6. SQL Server学习之路:建立数据库、建立表

    SQL Server学习之路:建立数据库.建立表 1.前言 配置是win10+SQL Server 2012,使用的GUI管理工具是SQL Server 2012自带的SQL Server Manag ...

  7. SQL Server全系列安装程序V1.2中文版

    SQL Server全系列自动安装程序是一款包含所有版本SQL Server的合集软件.SQL Server 在多数系统上的安装都不会一帆风顺,通常会因为缺少必备组件而安装不了,并且其版本繁多,还有3 ...

  8. SQL SERVER学习记录

    SQL SERVER学习记录 //创建数据库,请先在D盘手动建立一个 backup的文件夹 create database sl on (name = 'sl',filename = 'd:\back ...

  9. sql server 学习教程

    sql server 学习教程 SQL Server 系统数据库 master model msdb tempdb 索引 定义 分类 唯一索引 主键索引 聚集索引(Clustered) 非聚集索引(N ...

最新文章

  1. html5 minlength,HTML5中是否有minlength验证属性?
  2. 三个大数据处理框架:Storm,Spark和Samza 介绍比较
  3. Codeforces Round #462 (Div. 2)题解
  4. 十年经验工程师为何被裁?
  5. python安装以及版本检测
  6. HSRP+生成树+vlan间路由!
  7. selenium三个等待时间
  8. shader篇-纹理-凹凸映射
  9. Python 比较日期字符串与当前日期的日期差
  10. 关于如何在空间中建立直角坐标系
  11. 电脑进入BIOS界面快捷键是什么
  12. Vue学习之认识到应用(三)
  13. 【转载】三国演义里将领的身高
  14. 个人单干也能实现年入百万(玩转私域流量)
  15. 浪潮服务器做系统驱动,浪潮服务器系统安装操作.doc
  16. 有人跟我一样喜欢跑步?
  17. 『JWT』有人让你赶快用它,有人劝你放弃它
  18. Retrieval of ice cloud microphysical parameters using the CloudSat millimeter‐wave radar and tempera
  19. 『转』FFMPEG目前为止支持的所有格式列表
  20. Android 开发中如何实现在webview中打开微信支付、支付宝、QQ钱包支付

热门文章

  1. Linux下安装二进制版mysql-8.0.15
  2. 大数据教程之大数据处理流程
  3. 区块链应用 | 区块链将永久改变法律行业的七种方式
  4. 断点续传了解一下啊?
  5. JWT简介json web token bear token
  6. NK3C框架(MyBatis、Durid)连接SQL Server
  7. 创业者如何小步快跑,从0开始实现自己的产品?
  8. LAMP搭建UCenter
  9. 关于appcan自动升级功能
  10. 使用SeaJS实现模块化JavaScript开发