编写sql sever存储过程随笔

来源:互联网 发布:开淘宝店身份证照片 编辑:程序博客网 时间:2024/04/16 18:18

创建一个存储过程:

CREATE PROCEDURE SP_REMIND_DATES

AS

BEGIN

    ...

END

GO

 

---------------------------------------------------------------------------------------------------------------------------

 

使用游标遍历数据:

DECLARE YOUBIAO CURSOR FOR SELECT WORK_PLAN_UUID FROM QLC_WORK_PLAN

OPEN YOUBIAO                /* 打开游标 */ 

DECLARE @WP_UUID NVARCHAR(60)

FETCH NEXT FROM YOUBIAO INTO @WP_UUID      /* 读取第1行数据*/ 

WHILE @@FETCH_STATUS = 0

BEGIN

....

FETCH NEXT from YOUBIAO INTO @WP_UUID /* 在循环体内将读取其余行数据 */

END

CLOSE YOUBIAO               /* 关闭游标 */

DEALLOCATE YOUBIAO          /* 删除游标 */


#####Ps:

DECLARE @WP_UUID NVARCHAR(60)

FETCH NEXT FROM YOUBIAO INTO @WP_UUID

定义一个变量@WP_UUID,把游标的值存入变量

 

---------------------------------------------------------------------------------------------------------------------------

 

定义一个临时变量DECLARE @EARLY_DAYS INT

给临时变量用select语句赋值

SET @EARLY_DAYS=(SELECT EARLY_DAYS FROM QLC_WORK_PLAN WHERE WORK_PLAN_UUID=@WP_UUID)

 

---------------------------------------------------------------------------------------------------------------------------

 

If语句判断:

IF @EARLY_DAYS=0

BEGIN

...

END

 

 

--------------------------------------------------------------------------------------------------------------------------------------

 

Int型转化为char:CONVERT(varchar(20),11111)

------------------------------------------------------------------------------------------

获取当前时间:SELECT GETDATE()     /*2016-07-29 15:27:08.850*/

 

获取当前日期:SELECT CONVERT(varchar(10),GETDATE(),23)     /*2016-07-29*/

 

在指定日期上增加几天:SELECT DATEADD(day,6,'2016-05-05')   /*2016-05-11 00:00:00.000*/

在指定日期上减去几天:SELECT DATEADD(day,-6,'2016-05-05')   /*2016-04-29 00:00:00.000*/

 

日期之间相差的天数:SELECT DATEDIFF(day,'2016-04-05','20160408')  

 

------------------------------------------------------------------------------------------

 

编写代码的时候出现的错误:

1、在使用日期格式转化你的时候,日期是int型的就没有用

譬如select CONVERT(varchar(10),19950302,23)

 

 

 2、因为我的其他表里的日期是int型的,所以导致后面的日期减去几天这个函数报以下错误

   “将 expression 转换为数据类型 datetime 时出现算术溢出错误

 

-----解决方法:

所以要先把int型转换为char型的

 

0 0
原创粉丝点击