Sql用身份证号怎么获取出生日期
时间: 2023-07-24 10:45:21 浏览: 407
假设身份证号码存储在名为 `id_card` 的表中,可以使用以下 SQL 语句获取出生日期:
```
SELECT SUBSTR(id_card, 7, 8) AS birth_date FROM 表名 WHERE 条件;
```
其中,`SUBSTR(id_card, 7, 8)` 表示从身份证号码的第7个字符开始,截取8个字符,即出生日期部分。注意,这个方法只适用于18位的身份证号码。如果是15位的身份证号码,则需要修改截取的起始位置和长度。另外,根据实际情况,需要替换表名和条件部分。
相关问题
mysql查询通过身份证号获取出生日期后,查选小于6岁的人
可以使用MySQL的日期计算函数和条件查询来实现该需求。以下是一个示例查询语句:
```sql
SELECT *
FROM your_table
WHERE DATE_SUB(CURDATE(), INTERVAL 6 YEAR) < STR_TO_DATE(SUBSTRING(id_number, 7, 8), '%Y%m%d');
```
请替换 `your_table` 为你的表名,`id_number` 为你的身份证号字段名。
这里的逻辑是,首先使用 `SUBSTRING` 函数获取身份证号中的生日部分,然后使用 `STR_TO_DATE` 函数将其转换为日期格式。接着使用 `DATE_SUB` 函数计算当前日期减去6年后的日期,最后通过条件查询 `WHERE` 条件判断出生日期是否小于该日期。
注意:这里假设身份证号的出生日期部分在身份证号的第7到第14位。如果你的身份证号格式不同,请相应调整 `SUBSTRING` 中的参数。
希望能对你有所帮助!
sql server 用身份证号获取年龄
您可以使用 SQL Server 内置函数 DATEDIFF 和 GETDATE 来计算身份证号对应的年龄。
以下是一个示例查询:
```sql
DECLARE @idcard VARCHAR(18)='510101198001011234'; -- 身份证号
DECLARE @birth DATE=CONVERT(DATE, SUBSTRING(@idcard, 7, 4) + '-' + SUBSTRING(@idcard, 11, 2) + '-' + SUBSTRING(@idcard, 13, 2)); -- 出生日期
SELECT DATEDIFF(YEAR, @birth, GETDATE()) AS age; -- 计算年龄
```
这个查询将从身份证号中提取出生日期,然后使用 DATEDIFF 函数计算出生日期与当前日期之间的年数,得出年龄。
阅读全文