access数据的表中出生日期换算年龄问题
4个回答
展开全部
首先说如何根据出生日期查询得到年龄
SELECT birthday, DateDiff("yyyy", birthday, Now())+ Int( Format(now(), "mmdd") <= Format( birthday, "mmdd") ) as age from 表
这条语句亲测可用,查询结果如下(当前日期为2009-10-10)
birthday age
2000-9-1 9
2000-10-9 9
2000-10-10 8
2000-10-11 8
2000-11-1 8
其中,2000-10-10出生的话,按这个语句设定来讲,他是8岁,如果楼主想要设定在他过生日这天就长一岁,即:2000-10-10出生的人在2009-10-10这一天为9岁,将上面语句中的"<="换成"<"即可。
至于想要将"年龄"字段更新的话,建议听取ynisue的说法,年龄是变化的,没有必要去更新它。
自动填入"年龄"字段:
update table1
set age = DateDiff("yyyy", birthday, Now())+ Int( Format(now(), "mmdd") <= Format( birthday, "mmdd") )
SELECT birthday, DateDiff("yyyy", birthday, Now())+ Int( Format(now(), "mmdd") <= Format( birthday, "mmdd") ) as age from 表
这条语句亲测可用,查询结果如下(当前日期为2009-10-10)
birthday age
2000-9-1 9
2000-10-9 9
2000-10-10 8
2000-10-11 8
2000-11-1 8
其中,2000-10-10出生的话,按这个语句设定来讲,他是8岁,如果楼主想要设定在他过生日这天就长一岁,即:2000-10-10出生的人在2009-10-10这一天为9岁,将上面语句中的"<="换成"<"即可。
至于想要将"年龄"字段更新的话,建议听取ynisue的说法,年龄是变化的,没有必要去更新它。
自动填入"年龄"字段:
update table1
set age = DateDiff("yyyy", birthday, Now())+ Int( Format(now(), "mmdd") <= Format( birthday, "mmdd") )
展开全部
update 表
set 年龄=DateDiff('m',出生日期,Date())\12
其实年龄这个字段不应该要的,因为它是变化的。需要年龄时,根据出生日期和当前时间求得:
select DateDiff('m',出生日期,Date())\12 as 年龄 from 表
set 年龄=DateDiff('m',出生日期,Date())\12
其实年龄这个字段不应该要的,因为它是变化的。需要年龄时,根据出生日期和当前时间求得:
select DateDiff('m',出生日期,Date())\12 as 年龄 from 表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先说如何根据出生日期查询得到年龄
SELECT
birthday,
DateDiff("yyyy",
birthday,
Now())+
Int(
Format(now(),
"mmdd")
<=
Format(
birthday,
"mmdd")
)
as
age
from
表
这条语句亲测可用,查询结果如下(当前日期为2009-10-10)
birthday
age
2000-9-1
9
2000-10-9
9
2000-10-10
8
2000-10-11
8
2000-11-1
8
其中,2000-10-10出生的话,按这个语句设定来讲,他是8岁,如果楼主想要设定在他过生日这天就长一岁,即:2000-10-10出生的人在2009-10-10这一天为9岁,将上面语句中的"<="换成"<"即可。
至于想要将"年龄"字段更新的话,建议听取ynisue的说法,年龄是变化的,没有必要去更新它。
自动填入"年龄"字段:
update
table1
set
age
=
DateDiff("yyyy",
birthday,
Now())+
Int(
Format(now(),
"mmdd")
<=
Format(
birthday,
"mmdd")
)
SELECT
birthday,
DateDiff("yyyy",
birthday,
Now())+
Int(
Format(now(),
"mmdd")
<=
Format(
birthday,
"mmdd")
)
as
age
from
表
这条语句亲测可用,查询结果如下(当前日期为2009-10-10)
birthday
age
2000-9-1
9
2000-10-9
9
2000-10-10
8
2000-10-11
8
2000-11-1
8
其中,2000-10-10出生的话,按这个语句设定来讲,他是8岁,如果楼主想要设定在他过生日这天就长一岁,即:2000-10-10出生的人在2009-10-10这一天为9岁,将上面语句中的"<="换成"<"即可。
至于想要将"年龄"字段更新的话,建议听取ynisue的说法,年龄是变化的,没有必要去更新它。
自动填入"年龄"字段:
update
table1
set
age
=
DateDiff("yyyy",
birthday,
Now())+
Int(
Format(now(),
"mmdd")
<=
Format(
birthday,
"mmdd")
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在查询中
新建字段名
年龄: DateDiff("yyyy",[出生日期],Now())
新建字段名
年龄: DateDiff("yyyy",[出生日期],Now())
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询