和oracle一样,sql也可以自己定义函数

一个返回值,引用DEMO如下:

编写一个函数,该函数,可以通过输入借书时间来判断是否到期,当借阅时间大于30天,返回已经过期;否则返回还未到期。

CREATE FUNCTION IsDateout(@BDate datetime)
returns nvarchar(20)
AS
BEGIN
DECLARE @myresult nvarchar(20)
IF (datediff(day,@BDate,getdate())>30)
BEGIN
SET @myresult='已过期'
end
else
begin
set @myresult='未到期'
end
RETURN (@myresult)
END SELECT dbo.IsDateout(cast('2009-12-17' AS datetime))--结果已过期
SELECT dbo.IsDateout(cast('2010-12-17' AS datetime))--结果未到期

在百度文库这里有一个基础介绍比较全,大家可以看一下:

http://wenku.baidu.com/link?url=Z3ddYnO9msKYCgu-AjjkeG7jBtJCq4hkuNRp6_Y_6mrCSaK_CdmjygCoKqZVrwd5w7R4sVWaERSpBrFiRM4SYo5z_Q54kRGbAA188ThixqW

注意的是begin前是returns,begin里面是return。

一般情况下不要使用函数去调用存储过程,函数不可以更改数据库状态,函数也可以在内部返回一个表类型(table),类似一个可以传入参数的视图,并且还可以传入参数对表进行DML操作。

最新文章

  1. Daily Scrum 12.13
  2. mysql-2 mysql客户端
  3. POJ 1458 1159
  4. POJ 1054 The Troublesome Frog
  5. linux 使用 ionice 限制 Xen 虚拟机磁盘 IO
  6. WSDL Style和use的组合方式说明
  7. 类模板的困扰 LNK2019 (转)
  8. VLSI和ASIC的区别(转)
  9. MySQL分页实现
  10. Oracle如何还原数据库
  11. Java反射-修改字段值, 反射修改static final修饰的字段
  12. Spring Maven 包的依赖
  13. Github上star和fork比较高的vim配置方案
  14. oracle-systemtap
  15. HTML+CSS浏览器兼容性问题
  16. Docker环境准备-安装Ubuntu
  17. 数组实例 find和filter差异
  18. 【LAMP整合Redis键值缓存为库分担压力】
  19. 速记JVM内存模型和垃圾回收策略
  20. jQuery学习笔记(8)--表格筛选

热门文章

  1. 编译安装apache+php(加常见问题解决)
  2. gcc g++ 参数介绍
  3. 本地工程提交github
  4. UTF8存储与显示
  5. LA 3882 And Then There Was One
  6. exp/imp使用
  7. 删除github.com上repository(仓库)的方法
  8. AJAX异步调用
  9. uglifyjs使用
  10. NetBeansRCP-添加/修改NetBeans的JVM启动参数