SqlServer Function 实例

① sql server function 创建

这里使用一个计算年龄精确到分的function作为一个demo,


create Function [dbo].[fn_GetAge]
(
  @BIRTHDAY DateTime ,
  @MATH_DATEE DateTime
) returns Varchar(20)

Begin
DECLARE 
  @n_minute   decimal(10,0),
  @n_Hour     decimal(10,0) ,
  @n_Days     decimal(10,0) ,
  @n_Months   decimal(10,0) ,
  @n_Years    decimal(10,0),
  
  @v_Return Varchar(20)
  
  set @n_Years =datediff(YEAR,@BIRTHDAY,@MATH_DATEE) ;
  set @n_Months = datediff(MONTH,@BIRTHDAY,@MATH_DATEE) ;
  set @n_Days =datediff(DAY,@BIRTHDAY,@MATH_DATEE) ;
  set @n_Hour =datediff(HOUR,@BIRTHDAY,@MATH_DATEE) ;
  set @n_minute = datediff(MINUTE,@BIRTHDAY,@MATH_DATEE) ;
  set @v_Return='0';
  
  IF @n_Years = 0
    BEGIN
        IF @n_Months = 0
          BEGIN
            IF @n_Days = 0
                BEGIN
                    IF @n_Hour = 0
                        BEGIN
                            set @v_Return = convert(varchar(20),@n_minute) + '分';
                        END
                    ELSE
                        BEGIN
                            set @v_Return = convert(varchar(20),@n_Hour) + '小时';
                        END
                END
            ELSE
                BEGIN
                    set @v_Return = convert(varchar(20),@n_Days) + '天';
                END
          END
        ELSE
            BEGIN
                set @v_Return = convert(varchar(20),@n_Months) + '月';
            END
    END 
  ELSE 
      BEGIN
        set @v_Return = convert(varchar(20),@n_Years) + '岁';
      END
  

  Return @v_Return; 
End;


GO

② sql server function 使用

select dbo.fn_GetAge('2012-04-25 03:00:00.000','2012-04-25 06:42:00.000') as 年龄

结果:

结果

转载于:https://www.cnblogs.com/houlin/p/10148729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值