SQL计算年龄

chuxuestar 2010-05-29 04:07:52
worker(workerno,workername,workersex,workerborndate)

显示所有职工的年龄,并按职工号递增排序。

表中只有员工的出生时间,例如1952-01-03


此sql语言如何写?如何利用系统时间计算年龄?
请高手帮忙1
...全文
230 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lapheer 2011-07-29
  • 打赏
  • 举报
回复
----------------------------------------------------------------------
--计算年龄的函数
--算法原则:超过生日,年龄就得加1
--
--SELECT dbo.FUN_GetAge('1988-7-29', getdate()) as age
----------------------------------------------------------------------
CREATE function [dbo].[FUN_GetAge]
(
@birthday datetime, --出生日期
@today datetime --截至日期
)
returns int
as
begin
if @birthday > @today
begin
return 0;
end

declare @age int

select @age = datediff(year, @birthday, @today)--年份差值

if datepart(month, @today) > datepart(month, @birthday)--月份超过
begin
select @age = @age + 1
end

if datepart(month, @today) = datepart(month, @birthday)--月份一样
begin
if datepart(day, @today) >= datepart(day, @birthday)--日超过
begin
select @age = @age + 1
end
end

return @age ;
End
yuyujulin 2010-05-29
  • 打赏
  • 举报
回复
就这样结贴啦?
yuyujulin 2010-05-29
  • 打赏
  • 举报
回复


if OBJECT_ID('worker') is not null
drop table worker
go
--worker(workerno,workername,workersex,workerborndate)
create table worker(
workerno int,
workername varchar(20),
workersex int,
workerborndate datetime
)
insert into worker
select 3,'pjl',1,'1987-11-02' union all
select 2,'kzd',1,'1988-11-11' union all
select 1,'dyx',1,'1986-01-11'

select * from worker

select workerno,workername,workersex,DATEDIFF(MONTH,workerborndate,GETDATE())/12 as age
from worker
order by workerno
/*
zhengduan964532 2010-05-29
  • 打赏
  • 举报
回复

select workerno,
workername,
workersex,
age=datediff(year,workerborndate,getdate())
from worker
order by workerno asc
feixianxxx 2010-05-29
  • 打赏
  • 举报
回复
select workerno,workername,workersex,datediff(year,workerborndate,getdate())+1 as age
from worker
order by workerno
永生天地 2010-05-29
  • 打赏
  • 举报
回复

select workerno,workername,workersex,datediff(year,workerborndate,getdate())
from worker
order by workerno

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧