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 学习系列之五的更多相关文章
- SQL Server 学习系列之六
SQL Server 学习系列之六 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...
- SQL Server 学习系列之四(SQL 内幕)
SQL Server 学习系列之四(SQL 内幕) SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL ...
- 【SQL Server 学习系列】-- sql 随机生成中文名字
原文:[SQL Server 学习系列]-- sql 随机生成中文名字 ,) )) -- 姓氏 ,) )) -- 名字 INSERT @fName VALUES ('赵'),('钱'),('孙'),( ...
- 【SQL Server 学习系列】-- 清除SQL Server 2012连接过的服务器名称
需要删除两个地方,删除前请注意备份! 1. %AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin 2. %A ...
- 【SQL Server 学习系列】-- SQL查询数据库表字段值不为空或Null的所有列
) set @TableName = 'Agency' -- 表名 declare @querySql nvarchar(max) set @querySql = 'select ' ) declar ...
- 【SQL Server 学习系列】-- 获取字符串中出现某字符的次数及字符某次出现的下标
) = '1_BB_CC_DD_AA_EE_YY_WW_HH_GG' --// 1. 获取下划线在字符串中出现的次数 SELECT LEN(@Str) - LEN(REPLACE(@Str, '_', ...
- 【SQL Server 学习系列】-- ConnectionTimeout、CommandTimeout和BulkCopyTimeout
1. SqlConnection.ConnectionTimeout获取在尝试建立连接时终止尝试并生成错误之前所等待的时间.单位:秒默认值:15秒设置为0时,表示无限制 2. SqlCommand.C ...
- 【SQL Server 学习系列】-- 收缩数据库文件大小
USE WebExam; GO ALTER DATABASE WebExam SET RECOVERY SIMPLE; GO -- 收缩文件到 1 MB. ); GO ALTER DATABASE W ...
- 【SQL Server 学习系列】-- 随机生成日期时间的SQL脚本
DECLARE @dt1 DATETIME,@dt2 DATETIME,@a BIGINT,@b BIGINT SET @dt1='2010-01-01'--开始日期 SET @dt2='2010-0 ...
随机推荐
- JAVA ArraySet<E> SET形式的有序LIST
Set形式的数组,数组内容重复 package com.sicdt.library.core.utils; import java.util.ArrayList; import java.util.C ...
- Js 类型方面的神坑
你有没有遇见过本来好好的一个数组结果 typeof 出来是个 object 的情况,你有没有遇到过非要写个 typeof x === "undefined" 判断未赋值的情况... ...
- HTML5模拟衣服撕扯动画
在线演示 本地下载
- FTH: (7156): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***
这两天在Qtcreator上编译程序的时候莫名其妙的出现了FTH: (7156): *** Fault tolerant heap shim applied to current process. T ...
- 源代码中直接package edu.princeton.cs.algs4还是import edu.princeton.cs.algs4问题
对于前者这个问题,直接在src目录下命名一个包:edu.princeton.cs.algs4 即创建了文件:src->edu->princeton->cs->algs4,然后把 ...
- 高通平台Bootloader启动流程【转】
本文转载自:http://blog.csdn.net/fang_first/article/details/49615631 ====================基本知识============= ...
- [Android]开源中国源码分析之二---DrawerLayout
从启动界面到主界面之后的效果如图所示,采用的是v4包下的DrawerLayout, activity_main.xml文件如下: <!-- A DrawerLayout is intended ...
- CCNA 课程 一
OSI 参考模型: 7应用层 6表示层 5会话层 4传输层 -- TCP / UDP (端口号) 3网络层 -- IP (原IP地址,目标IP地址) 2数据链路层 -- ARPA / e ...
- 为什么原生的servlet是线程不安全的而Struts2是线程安全的?
因为原生的servlet在整个application生命周期中,只在初次访问的时候实例化一次,以后都不会再实例化,只会调用Server方法进行响应,所以如果在servlet类中定义成员变量,那么就会让 ...
- java进阶之-Maven,svn,git,maven合拼多个项目
git的使用介绍(写很容易懂得哦) maven合拼多个项目(写得很好哦) MAVEN作用:统一开发规范与工具:统一管理jar包 1.下载MAVEN 下载绿色版的面安装 2.环境配置 eclipse想 ...