在使用数据库的过程中,往往我们需要对有的数据先进行计算,然后再查询出来,所以我们就需要创建函数来完成这项任务,在数据库的Programmability(如图1)下面的Function中创建函数(如图2)

(图1)(图2)

在这里创建的函数一般有两种返回类型,一种是返回一个集合(数据表),另一种是直接返回一个字符串(如图3)

(图3)

下面是两种函数的创建实例

1、集合

创建函数fn_selectWorkTime

Create FUNCTION fn_selectWorkTime
(
  @plantID int
  , @CheckTime datetime --考勤时间
  , @deptID int --部门
  , @wShop int --工段
  , @roleID int --岗位
  , @wGroup int --班组
  , @uID int --员工
)

RETURNS @retValue Table (atWork datetime, offWork datetime)
AS
BEGIN

  Declare @onTime datetime
    , @offTime datetime

  --......

  Set @onTime = '2016-07-01 08:00'
  Set @offTime = '2016-07-01 17:00'

  Insert Into @retValue(atWork, offWork)
  Values(@onTime1, @offTime1, @isSunday, @atDinner, @offDinner, @atLunch, @offLunch, @hasStdTime)

  Return
END

在存储过程中调用所创建的函数

Select *

From dbo.fn_calStdAttAll(@plantid, @time1, @deptID, @wShop, @roleID, @wGroup, @uid5)

2、字符串

创建函数 fn_calStdAtt

CREATE FUNCTION fn_calStdAtt
(
  @CheckTime datetime --考勤时间
  , @deptID int --部门
  , @wShop int --工段
  , @roleID int --岗位
  , @wGroup int --班组
  , @uID int --员工
  , @which char(1) --I:上班时间,O:下班时间
)
RETURNS varchar(20)
AS
BEGIN

  Declare @retValue datetime
  --......

  Set @retValue = '2016-07-01 08:00'

  Return Convert(varchar(20), @retValue, 120)

END

在存储过程中调用所创建的函数

select dbo.fn_calStdAtt (@CheckTime, @deptID, @wShop, @roleID, @wGroup, @uID, @which)

以上只是个人在开发中的总结,不足之处望大家多指教

Sql Server创建函数的更多相关文章

  1. SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]

    SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数   --创建表格 create table aa ( UserName varchar(50 ...

  2. SQL Server 聚合函数算法优化技巧

    Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...

  3. SQL Server用户自定义函数

    用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统 函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行.在 SQL Server 中根据函数 ...

  4. 13、SQL Server 自定义函数

    SQL Server 自定义函数 在SQL Server中不仅可以使用系统函数(如:聚合函数,字符串函数,时间日期函数等)还可以根据需要自定义函数. 自定义函数分为标量值函数和表值函数. 其中,标量值 ...

  5. SQL Server 创建表分区

    原文:SQL Server 创建表分区 先准备测试表 CREATE TABLE [dbo].[Employee] ( EmployeeNo ,) PRIMARY KEY, EmployeeName ) ...

  6. sql server自定义函数学习笔记

    sql server中函数分别有:表值函数.标量函数.聚合函数.系统函数.这些函数中除系统函数外其他函数都需要用户进行自定义. 一.表值函数 简单表值函数 创建 create function fu_ ...

  7. SQL Server 自定义函数(Function)——参数默认值

    sql server 自定义函数分为三种类型:标量函数(Scalar Function).内嵌表值函数(Inline Function).多声明表值函数(Multi-Statement Functio ...

  8. SQL Server创建、更改和删除架构

    SQL Server创建架构 学习如何使用SQL Server CREATE SCHEMA在当前数据库中创建新架构. SQL Server中的架构是什么 架构是包括表,视图,触发器,存储过程,索引等在 ...

  9. SQL Server系统函数:元数据函数

    原文:SQL Server系统函数:元数据函数 1.列的长度.列名 --列的长度 select COL_LENGTH('dbo.wct', --表名 'wcid') --列名 --列名 select ...

随机推荐

  1. IOS错误Could not produce class with ID

    运行环境 Unity 5.3.5f1 (IL2CPP)编译IOS版本 XCode Version 7.2.1 (7C1002) Mac OS X 10.11.3 (15D21) (Mac mini) ...

  2. ASP.NET MVC - 定制属于你自己的ViewEngine

    http://blog.csdn.net/jackvs/article/details/7788743 ASP.NET MVC出来这么久了,心中却又很多的疑惑:为什么所有的View都要放在Views目 ...

  3. [LeetCode] Strong Password Checker 密码强度检查器

    A password is considered strong if below conditions are all met: It has at least 6 characters and at ...

  4. FineUI(开源版)v6.0中FState服务器端验证的实现原理

    前言 1. FineUI(开源版)是完整开源,最早发起于 2008-04,下载全部源代码:http://fineui.codeplex.com/ 2. 你可以通过捐赠作者来支持FineUI(开源版)的 ...

  5. 怎样简单灵活地将DataTable中的数据赋值给model

    最近在做的一个项目中,有13个方法都需要用到同一种处理方式:通过SQL语句从数据库获取一条指定的数据,并将该数据中的每个值都赋值给一个model,再将这个model中的数据通过微信发送出去.每个方法都 ...

  6. Linux CGroup之freezer分析与应用

    Linux Kernel:4.4.17 CGroup的freezer子系统对于成批作业管理系统很有用,可以成批启动/停止任务,以达到及其资源的调度. freezer子系统也有助于针对运行一组任务设置检 ...

  7. 分分钟搞定IOS远程消息推送

    一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远 ...

  8. DDNS动态更新

    /// <summary> /// DnsPod DDNS工具类 /// </summary> public class DDNSToolkit { private stati ...

  9. Android ListView上拉获取下一页

    关于ListView上拉刷新的需求很多,实现方式也多种多样. 一般是简单的通过一个page变量来控制当前请求的页数,然后上拉的时候就发送请求. 实现出来后,经过测试哥的折腾,发现有诸多细节没有处理好, ...

  10. iOS持续写文件到本地

    NSString *tempSavePath = [NSString stringWithFormat:@"%@/Documents",kDocumentPath]; NSFile ...