回 帖 发 新 帖 刷新版面

主题:命令分析

请高手帮忙分析该命令:
怎样从身份证号中取出生年月或性别,如下,
replace  出生年月  with   IIF(LEN(ALLTRIM(身份证号))=15,CTOD(SUBSTR(ALLTRIM(身份证号),7,2)+"/"+SUBSTR(ALLTRIM(身份证号),9,2)+"/"+SUBSTR(ALLTRIM(身份证号),11,2)),CTOD(SUBSTR(ALLTRIM(身份证号),7,4)+"/"+SUBSTR(ALLTRIM(身份证号),11,2)+"/"+SUBSTR(ALLTRIM(身份证号),13,2)))

回复列表 (共2个回复)

沙发

就是从身份证号中取出这个人的出生日期
分成这样三段就清楚点了吧!
IIF(LEN(ALLTRIM(身份证号))=15,;
    CTOD(SUBSTR(ALLTRIM(身份证号),7,2)+"/"+SUBSTR(ALLTRIM(身份证号),9,2)+"/"+SUBSTR(ALLTRIM(身份证号),11,2)),;
    CTOD(SUBSTR(ALLTRIM(身份证号),7,4)+"/"+SUBSTR(ALLTRIM(身份证号),11,2)+"/"+SUBSTR(ALLTRIM(身份证号),13,2)))

当为15位身份证时:如下方式取日期
SUBSTR(ALLTRIM(身份证号),7,2):从第7开始取数据,并取2位。实际就是年度的最后两位
SUBSTR(ALLTRIM(身份证号),9,2):从第9开始取数据,并取2位。实际就是月份
SUBSTR(ALLTRIM(身份证号),11,2):从第9开始取数据,并取2位。实际就是第几号
当为19位身份证时,如下方式取日期
SUBSTR(ALLTRIM(身份证号),7,4)&&4位年度
SUBSTR(ALLTRIM(身份证号),11,2)&&2位月份
SUBSTR(ALLTRIM(身份证号),13,2)))&&2位号数

以上两种份形成字符串,再通过CTOD转换成日期型数据。

板凳


谢谢你!高手就是高手,简明清晰,一目了然![em20]

我来回复

您尚未登录,请登录后再回复。点此登录或注册