欢迎光临精准像素,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

数据库教程

通过身份证号计算年龄SQL语法

数据库教程 精准像素 2021-04-16 共99人阅读

1.截取身份证号上的出生日期

身份证一般为18位数和15位数

18位数身份证的第7-10位数是出生年份,第11-14位数是出生月日,所以18位身份证的年龄计算如下

substring(now(),1,4)-substring(idcard,7,4))-(substring(idcard,11,4)-date_format(now(),'%m%d')>0

15位数身份证的第7-8位数是出生年份,但是少了两位。15位数身份证把1930就简化成30少了前面的19,并且15位身份证全部都在19XX年颁发。 第9-12位数是出生月日,所以15位身份证的年龄计算如下

substring(now(),1,4)-(1900+substring(idcard,7,2)))-(substring(idcard,9,4)-date_format(now(),'%m%d')>0

2.加if判断18位和15位

MySQL的if语法比较像JAVA里的三元表达式

IF(条件,条件为true执行,条件为false执行)

MySQL的字符串长度获取方法

CHAR_LENGTH(字符串)

3.最终的sql语句

select 
id,
if (CHAR_LENGTH(idcard)<18,(substring(now(),1,4)-(1900+substring(idcard,7,2)))-(substring(idcard,9,4)-date_format(now(),'%m%d')>0),(substring(now(),1,4)-substring(idcard,7,4))-(substring(idcard,11,4)-date_format(now(),'%m%d')>0)) as age,
idcard
from t_table;


相关推荐
  • SQL语法
  • sql语句
  • 帝国CMS一键清空栏目数据+模型数据表SQL语法

    帝国CMS清空数据有两种方法,第一种方法是帝国CMS后台自带的清空数据功能,第二种是SQL方法帝国CMS后台清空数据功能点击后台的“栏目”-左侧菜单“其他相关”-打开“批量删除信息”帝国CMS一键清空栏目数据+模型数据表SQL语法截图后台自带的批量删除功...

    帝国cms教程 29 4个月前
  • SQL求和语法详解

    SQL求和语法select sum(price),count(id) from order ;查询得到price列的和,以及记录数。该SQL中sum(price)是求列price的总和,count(id)是根据查询到的ID数量得到的数据总行数。count(id)要比count(*)查询速度更快更节约资源。SQL求和语法案列我们看...

    数据库教程 54 1年前
  • sql两个求表的差语法

    sql求两个表t1和t2,表中只有一个字段c1。求两个表的差。即存在于t1,但不存在于t2中的记录。方法1.select c1 from t1 where c1 not in (select c1 from t2)方法2.select c1 from t1 where not exists(select * from t2 where t1.c1=t2.c1)方法3.select...

    数据库教程 47 1年前
  • 常用sql操作数据库语法总结

    创建数据库CREATE DATABASE database-name删除数据库drop database dbname备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice &#39;disk&#39;, &#39;testBack&#39;, &#39;c:mssql7backupMyNwind_1.dat&#39;--- 开始 备份BACK...

    数据库教程 56 1年前
  • SQL新手入门SELECT数据库查询语句

    SELECT语义SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。SELECT语法示例SELECT column_name,column_name FROM table_name;SELECT * FROM table_name;下面的 SQL 语句从 "Websites" 表中选取 "name" 和 "country" 列:SEL...

    数据库教程 51 1年前
  • 苹果cms批量删除SQL语法

    收集整理苹果CMS常用批量删除相关的SQL语句,使用方法在苹果cms后台=》数据库=》执行SQL语句就可以了。删除所有数据DELETE FROM {pre}vod删除指定ID为1000的数据DELETE FROM {pre}vod WHERE d_id=1000删除d_starring字段里有"刘德华"的数据DELETE FRO...

    苹果cms教程 182 2年前
  • 帝国CMS批量替换栏目路径SQL

    将栏目路径清空SQL语句UPDATE phome_enewsclass SET classpath='';UPDATE phome_enewsclass SET classpath=concat(classpath,'html/',classid);

    帝国cms教程 115 2年前
  • SQL清空某字段的值

    网上找了好多文章才发现,主要是好多都是错了,试了很多。最开始找到是这段,网上都说等于null是对的update tablename set temp=null但测试等于null是不行的,直接报错。update px_dp_tagsadd set py="";网上都说不能等于空,但我测试发现等于等于空才是对的...

    经验分享 1059 2年前
  • SQL批量替换字段字符语句
    SQL批量替换字段字符语句

    SQL产品图最近优化网站结构遇到的问题,分享给大家。要求是需要把内容字段的H4标签用SQL语句批量替换成b标签,利于网站整体优化。在网上学习了这段代码,测试可以使用。SQL批量替换字段语句示例update...

    数据库教程 79 2年前
  • 帝国CMS教程自定义列表SQL方法

    帝国CMS自定义列表可以用来实现特定的信息列表。 自定义列表教程方法: 用户进入后台->模板管理->自定义列表->(右上角)增加自定义列表 1,列表名称是后台管理员看到的列...

    帝国cms教程 343 7年前