我要作一个今日寿星
从数据库的人员表中获取身份证号,
从身份证中获取该人员是否为今天出生,身份证有15位和18位
我该怎么做,请大哥大姐们给出代码?
这个字段是Nvarchar
谢谢了!!!

解决方案 »

  1.   

    取出来赋给string
    length()得到是15还是18位的然后对应取出其中的日期
    再格式化成Date就完了
      

  2.   

    这个应该不难啊,身份证的中的出生年月位数是固定的.从第7位开始,每隔两位是年月日(我还是15位的,不知道18位的是什么排序)
    sql = "select * from table where substr(身份证字段,9,6) = to_char(sysdate,'mmdd')"
    以上是oracle的写法.
      

  3.   

    方法很多嘛,在后台可以写SQL脚本,在前台可以用拆分string的方法
      

  4.   

    "select * from table where substr(身份证字段,9,6) = to_char(sysdate,'mmdd')"
    也可以读入到datareader reader["id"].Substring(9,6);
      

  5.   

    我要作一个今日寿星
    从数据库的人员表中获取身份证号,
    从身份证中获取该人员是否为今天出生,身份证有15位和18位
    我该怎么做,请大哥大姐们给出代码?
    这个字段是Nvarchar
    谢谢了!!!
    SQL SERVER 2000
      

  6.   

    前面6位都是一样的,
    15位的日期年份少2位,后面的都不要管了
    str 身份证字段
    string birthday="";
    if(str.Length==15)
    {
        birthday="19"+str.Substring(6,6);//2000年出生的不可能有15位的了(他们没有身份证,嘿嘿)
    }
    else
    {
        birthday=str.Substring(6,8);
    }
    然后日期转换比较就没有问题了吧,不过人家给你输入的可能不是真的身份证号码记得要处理哟。