sql截取身份证出生日期并转为yyyy-mm-dd hh:mi:ss的时间格式
时间: 2024-05-18 14:18:55 浏览: 149
分享Sql日期时间格式转换
5星 · 资源好评率100%
假设身份证号码的格式为18位数字,其中前6位为出生日期,例如:19900101 表示出生于1990年1月1日。
你可以使用以下SQL语句来截取身份证出生日期并转换为时间格式:
```
SELECT CONCAT(SUBSTR(id_card, 7, 4), '-', SUBSTR(id_card, 11, 2), '-', SUBSTR(id_card, 13, 2), ' 00:00:00') AS birthdate
FROM your_table;
```
解释一下上述SQL语句:
- `SUBSTR(id_card, 7, 4)` 表示从身份证号码的第7位开始截取4位数字,即出生年份。
- `SUBSTR(id_card, 11, 2)` 表示从身份证号码的第11位开始截取2位数字,即出生月份。
- `SUBSTR(id_card, 13, 2)` 表示从身份证号码的第13位开始截取2位数字,即出生日期。
- `CONCAT` 函数将上述三个部分合并成一个字符串,中间用 `'-'` 分隔,后面加上 `' 00:00:00'` 表示时间部分。
- `AS birthdate` 表示将上述字符串的别名设置为 `birthdate`。
需要注意的是,上述SQL语句中的 `your_table` 需要替换成你的表名。另外,如果身份证号码中的年份不是4位数字,或者你需要截取时间的时分秒部分,可以相应地修改上述SQL语句。
阅读全文