CREATE  FUNCTION ufn_hr_getagefrombirthday
(
@birthday DATE,
@now DATE =NULL )
RETURNS VARCHAR(20)
BEGIN IF (@now IS NULL OR @now = '')
BEGIN
SET @now = GETDATE();
END; DECLARE @age INT;
SET @age = 0; DECLARE @result VARCHAR(20); WHILE (DATEADD(YEAR, @age, @birthday) < @now)
BEGIN
SET @age = @age + 1;
END; SELECT @result
= CAST(CASE
WHEN (@age - 1) < 0 THEN
0
ELSE
(@age - 1)
END AS VARCHAR(4)) + '岁'
+ CAST(DATEDIFF(
DAY,
DATEADD( YEAR,
CASE
WHEN (@age - 1) < 0 THEN
0
ELSE
(@age - 1)
END,
DATEADD(DAY, 1, @birthday)
),
DATEADD(YEAR, @age, DATEADD(DAY, 1, @birthday))
) + 1 - (DATEDIFF(DAY, @now, DATEADD(YEAR, @age, DATEADD(DAY, 1, @birthday)))) AS VARCHAR(4))
+ '/'
+ CAST(DATEDIFF(
DAY,
DATEADD(YEAR, @age - 1, DATEADD(DAY, 1, @birthday)),
DATEADD(YEAR, @age, DATEADD(DAY, 1, @birthday))
)
AS VARCHAR(4)) + ''; RETURN @result;
END;

最新文章

  1. [原创]如何利用BI搭建电商数据分析平台
  2. VS常用快捷键
  3. 5.openssl dgst
  4. PHP 环境塔建
  5. chkconfig用法 LINUX
  6. LeetCode Perfect Squares
  7. Android 操作系统的内存回收机制
  8. javascript实现silverlight pivotViewer控件
  9. 一个用js写的接口http调试程序
  10. java设计原则:16种原则
  11. JSON以及Java转换JSON的方法(前后端常用处理方法)
  12. C++运算符重载(10)
  13. pandas常用函数之diff
  14. js中split 正则表示式 (/[,+]/)
  15. 小米手机跨域问题,返回resphone:undefined,status 0
  16. Pandorabox(Openwrt) 双宽带(WAN) 叠加网络实战
  17. 解决STM32 I2C接口死锁在BUSY状态的方法讨论
  18. Hive| ETL清洗&amp; 查询练习
  19. Vue学习【第四篇】:Vue 之webpack打包工具的使用
  20. 【转】C与CPP后缀的文件在编译时的区别

热门文章

  1. 神州数码DHCP及DHCP中继配置
  2. 2019 Power BI最Top50面试题,助你面试脱颖而出系列&lt;上&gt;
  3. DataBase——Mysql的DataHelper
  4. USB接口禁用与启用
  5. C语言中的一维数组
  6. 兄弟连学python---网络简介
  7. 关于python的创立模块和导入
  8. linx6.7 update openssh to 7.7p1
  9. C++ operator 学习
  10. python glob模块使用笔记(更新)