码迷,mamicode.com
首页 > 数据库 > 详细

SQL basic

时间:2015-11-13 22:01:47      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

Function 

从例子学习

drop function dbo.getWorkingDateCount;  --getWorkingDateCount = functionName

CREATE FUNCTION [dbo].[getWorkingDateCount] 
(    
  --这3个是parameter, 名字和类型
  @fromDate  date,  
  @toDate date,
  @publicHolidayStrList nvarchar(500)   
)
RETURNS int  --表明返回类型
AS 
BEGIN
    DECLARE @count INT = 0; --DECLARE 就是var
    WHILE @fromDate <= @toDate --while 就是for loop
    BEGIN
        DECLARE @ipos INT = 0;
        DECLARE @dateName nvarchar(50);
         --赋值一定要写set在前面,
         --CHARINDEX 是 indexOf
         --CONVERT 是 datetime to string , 126 是一个sql对日期格式的代号 refer : 
        SET @ipos = CHARINDEX(CONVERT(VARCHAR(10),@fromDate,126), @publicHolidayStrList);
        SET @dateName = DATENAME(weekday, @fromDate);
        IF @ipos = 0 and @dateName != ‘Saturday‘ and @dateName !=‘Sunday‘
        BEGIN
            SET @count = @count + 1;
        END    
        SET @fromDate = DATEADD(day,1,@fromDate)
    END;
    RETURN @count;
END

select dbo.getWorkingDateCount(‘2015-11-01‘,‘2015-11-30‘,‘2015-11-07,2015-11-13‘) as ‘date‘; 

 

上面是一个调用来获取工作天数的函数

 

SQL basic

标签:

原文地址:http://www.cnblogs.com/keatkeat/p/4963194.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!