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