探讨如何计算age的sql函数
程序员文章站
2024-02-20 09:18:22
复制代码 代码如下:alter function [dbo].[get_fullage]( @birthday datetime, @currentday da...
复制代码 代码如下:
alter function [dbo].[get_fullage]
(
@birthday datetime, @currentday datetime
)
returns int
as
begin
declare @age int
set @age = datediff(year, @birthday, @currentday)
if datediff(day, dateadd(year, @age, @birthday), @currentday) <= 0
set @age = @age - 1
if datepart(month, @birthday) = 2 and datepart(day, @birthday) = 29 and datepart(month, @currentday) = 3
and datepart(day, @currentday) = 1 and
not (year(@currentday) % 4 = 0 and (year(@currentday) % 100 !=0 or year(@currentday) % 400 = 0))
set @age = @age - 1
if @age < 0
set @age = 0
return @age
end
--sql根据出生日期计算age(不是很准确)
1. select datediff(year,emp_birthday,getdate()) as '年龄' from employeeunchangeinfo
2. floor((datediff(day,u.emp_birthday,getdate()))/365
推荐阅读
-
探讨如何计算age的sql函数
-
探讨SQL利用INFORMATION_SCHEMA系统视图如何获取表的主外键信息_MySQL
-
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解_PHP
-
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数_PHP
-
探讨SQL Server 2005的评价函数
-
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解_PHP教程
-
探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句
-
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
-
SQL2005CLR函数扩展-深入环比计算的详解
-
探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句