SQL Server 学习系列之五

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

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

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

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

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

 -- =============================================
-- Author: zhangbc
-- Create date: 2013-10-19
-- Description: 检测convert(char(10),getdate(),1)函数的类型值输出格式
-- =============================================
ALTER PROCEDURE [dbo].[Getconvert]
(
@startFlg INT,
@endFlg INT,
@condiition CHAR(1000)='1=1'
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF(@startFlg>@endFlg)
BEGIN
SELECT '开始数字大于结束数字,顺序不对,请更正!' as ErrorMessage
END
ELSE
BEGIN
CREATE TABLE #t
( flg INT,
date NVARCHAR(100),
txt TEXT DEFAULT NULL
)
DECLARE
@date NVARCHAR(100),
@cn NVARCHAR(4000)='无效类型值有:',
@ErrorMessage NVARCHAR(100),
@sql CHAR(1000)
WHILE (@startFlg<=@endFlg)
BEGIN
--捕获异常状态
BEGIN TRY
SET @date=convert(char(20),getdate(),@startFlg)
INSERT INTO #t VALUES (@startFlg ,@date,NULL)
END TRY
BEGIN CATCH
SET @ErrorMessage=ERROR_MESSAGE()
SET @cn=@cn+' '+replace(CAST(@startFlg AS NVARCHAR(4000)),'','')
END CATCH;
set @startFlg=@startFlg+1
END
INSERT INTO #t VALUES (@endFlg+1,@ErrorMessage,cast(@cn AS TEXT))
--SELECT @cn,@ErrorMessage
SET @sql='SELECT * FROM #t where '+@condiition
EXEC(@sql)
DROP TABLE #t
END

测试一:

exec [Getconvert] 1000,100

截图如下:

测试二:

exec [Getconvert] 10,20

截图如下:

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

SQL Server 学习系列之五的更多相关文章

  1. SQL Server 学习系列之六

    SQL Server 学习系列之六 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...

  2. SQL Server 学习系列之四(SQL 内幕)

    SQL Server 学习系列之四(SQL 内幕) SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL ...

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

    原文:[SQL Server 学习系列]-- sql 随机生成中文名字 ,) )) -- 姓氏 ,) )) -- 名字 INSERT @fName VALUES ('赵'),('钱'),('孙'),( ...

  4. 【SQL Server 学习系列】-- 清除SQL Server 2012连接过的服务器名称

    需要删除两个地方,删除前请注意备份! 1.  %AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin 2.  %A ...

  5. 【SQL Server 学习系列】-- SQL查询数据库表字段值不为空或Null的所有列

    ) set @TableName = 'Agency' -- 表名 declare @querySql nvarchar(max) set @querySql = 'select ' ) declar ...

  6. 【SQL Server 学习系列】-- 获取字符串中出现某字符的次数及字符某次出现的下标

    ) = '1_BB_CC_DD_AA_EE_YY_WW_HH_GG' --// 1. 获取下划线在字符串中出现的次数 SELECT LEN(@Str) - LEN(REPLACE(@Str, '_', ...

  7. 【SQL Server 学习系列】-- ConnectionTimeout、CommandTimeout和BulkCopyTimeout

    1. SqlConnection.ConnectionTimeout获取在尝试建立连接时终止尝试并生成错误之前所等待的时间.单位:秒默认值:15秒设置为0时,表示无限制 2. SqlCommand.C ...

  8. 【SQL Server 学习系列】-- 收缩数据库文件大小

    USE WebExam; GO ALTER DATABASE WebExam SET RECOVERY SIMPLE; GO -- 收缩文件到 1 MB. ); GO ALTER DATABASE W ...

  9. 【SQL Server 学习系列】-- 随机生成日期时间的SQL脚本

    DECLARE @dt1 DATETIME,@dt2 DATETIME,@a BIGINT,@b BIGINT SET @dt1='2010-01-01'--开始日期 SET @dt2='2010-0 ...

随机推荐

  1. Linux Shell编程 循环语法

    for循环 for 循环是固定循环,也就是在循环时已经知道需要进行几次循环.有时也把 for 循环称为计数循环.语法: for 变量 in 值1 值2 值3… do 程序 done 在这种语法中,fo ...

  2. Android DDMS应用

    具体可见http://developer.android.com/tools/debugging/ddms.html. DDMS为IDE和emultor.真正的android设备架起来了一座桥梁.开发 ...

  3. [转]springmvc中的常用的返回

    package com.boventech.learning.controller; import java.util.HashMap; import java.util.Map; import or ...

  4. valn 配置

    内核修改: /device drivers/Network device support/MAC-VLAN support 1.创建目录和文件#cd /usr#mkdir vlan#cd vlan#c ...

  5. Delphi 2005 以上版本GIF动画播放设置

    源: Delphi 2005 以上版本GIF动画播放设置

  6. windows10 搜索桌面搜索功能失效的解决

    windows桌面的搜索框用起来很方便,很多时候直接把不常用的程序的快捷方式删掉,直接从搜索框搜索就可以,但是这两天突然不能用了,今天晚上找了一下原因,终于弄好了. 参考知乎上面的陈滔滔的方法: ht ...

  7. mapreduce 实现数子排序

    设计思路: 使用mapreduce的默认排序,按照key值进行排序的,如果key为封装int的IntWritable类型,那么MapReduce按照数字大小对key排序,如果key为封装为String ...

  8. http 常见的错误码

    翻译自:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 常见错误码 一.信息 1XX (Information 1xx) ——这一类的状 ...

  9. Codeforces Round #304 (Div. 2) D. Soldier and Number Game 素数打表+质因数分解

    D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...

  10. Liberty glance 新功能 healthcheck

    oslo.middleware‘s healthcheck http://specs.openstack.org/openstack/oslo-specs/specs/kilo/oslo-middle ...