身份证号码 计算年龄 性别

benqlch 2008-01-21 10:30:51
表:
姓名 身份证号码
A XXXX(18位或15位)

用SQL 通过身份证号码得到年龄和性别 输出为

姓名 身份证号码 年龄 性别
...全文
2074 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2008-01-22
  • 打赏
  • 举报
回复
http://club.excelhome.net/dispbbs.asp?boardid=1&id=65359

网上很多这方面的资料
liuyann 2008-01-21
  • 打赏
  • 举报
回复
select 
姓名,
身份证号码,
iif(len(身份证号码)=18,2008-mid(身份证号码,7,4),108-mid(身份证号码,7,2)) as 年龄,
iif( iif(len(身份证号码)=18,mid(身份证号码,17,1),mid(身份证号码,15,1)) mod 2 =0 ,"M","F") as 性别
from 表


未测试,基本就这么个意思

我知道身份证号哪里能看得出性别
stephen_deng 2008-01-21
  • 打赏
  • 举报
回复
我写给你,这么简单的,晕
dim sql as string
dim rs as recordset
dim brchar as integer
dim sexly as string
sql="select * from table where"
set rs=currentdb.openrecordset(sql)
while not rs.eof
if len(rs("身份证号"))=15 then brachar=year(date())-mid(rs("身份证号码"),7,5)
if len(rs("身份证号"))=18 then brachar=year(date())-mid(rs("身份证号码"),7,7)
'性别 套用上面的语法算,我不知道身份证号哪里能看得出性别
docmd.print rs("姓名")& " "&rs("身份证号码")& " "&brachar" "&sexly& vbnewline
wend

wwwwb 2008-01-21
  • 打赏
  • 举报
回复
首先判断身份证号码长度,
15位:

从第7位到第12位是年月日
18位:
从第7位到第14位是年月日
性别:原来是根据最后一位来判断,现在不知道
OracleRoob 2008-01-21
  • 打赏
  • 举报
回复
不是if,是iif()



15位:

从第7位到第12位是年月日


18位:

从第7位到第14位是年月日

用mid()函数分别获取年、月、日然后转换为日期与现在的日期date()比较计算年龄
liuyann 2008-01-21
  • 打赏
  • 举报
回复
select 姓名,身份证号码,if(len(身份证号码)=18,2008-mid(身份证号码,7,4),108-mid(身份证号码,7,2)),if( if(len(身份证号码)=18,mid(身份证号码,17,1),mid(身份证号码,15,1)) mod 2 =0 ,"M","F")
from 表


未测试,基本就这么个意思
用IF根据LEN长度用MID来取日期

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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