sql server 用身份证号获取年龄
时间: 2023-08-21 07:05:53 浏览: 2518
您可以使用 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 函数计算出生日期与当前日期之间的年数,得出年龄。
相关问题
SQLser 根据身份证计算年龄
可以使用 SQL Server 内置的函数来根据身份证计算年龄。以下是一个示例代码:
```sql
DECLARE @idCard VARCHAR(18) = '110101199001011234' -- 身份证号码
DECLARE @birthYear INT = CAST(SUBSTRING(@idCard, 7, 4) AS INT) -- 出生年份
DECLARE @birthMonth INT = CAST(SUBSTRING(@idCard, 11, 2) AS INT) -- 出生月份
DECLARE @birthDay INT = CAST(SUBSTRING(@idCard, 13, 2) AS INT) -- 出生日
DECLARE @nowYear INT = YEAR(GETDATE()) -- 当前年份
DECLARE @nowMonth INT = MONTH(GETDATE()) -- 当前月份
DECLARE @nowDay INT = DAY(GETDATE()) -- 当前日
-- 如果出生日期大于当前日期,则减去一岁
IF (DATEFROMPARTS(@nowYear, @nowMonth, @nowDay) < DATEFROMPARTS(@birthYear, @birthMonth, @birthDay))
SET @birthYear = @birthYear - 1
-- 计算年龄
SELECT @nowYear - @birthYear AS Age
```
示例中使用了 `SUBSTRING` 函数来提取身份证中的出生年月日,使用了 `YEAR`、`MONTH` 和 `DAY` 函数来获取当前日期的年月日,使用了 `DATEFROMPARTS` 函数来构造日期对象,并使用 `SET` 语句来减去可能的一岁。最后使用减法运算符计算年龄。
使用PHP语言生成代码,编写一个学生表基本信息管理界面,实现增加、删除、修改的功能,学生表包含学号、姓名、性别、年龄、身份证号、专业编号、班级编号、联系方式、家庭住址、备注这些字段
好的,我可以为您提供一个基本的学生表管理界面的代码示例,但需要说明的是,这只是一个简单的示例,您需要根据自己的实际需求进行适当的修改和完善。
```php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息管理系统</title>
</head>
<body>
<?php
//连接数据库
$conn = mysqli_connect("localhost", "root", "password", "database");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
//处理增加学生信息的表单提交
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["add"])) {
$sql = "INSERT INTO students (stu_no, name, gender, age, id_card, major_no, class_no, phone, address, remark) VALUES ('$_POST[stu_no]', '$_POST[name]', '$_POST[gender]', '$_POST[age]', '$_POST[id_card]', '$_POST[major_no]', '$_POST[class_no]', '$_POST[phone]', '$_POST[address]', '$_POST[remark]')";
if (mysqli_query($conn, $sql)) {
echo "添加成功";
} else {
echo "添加失败: " . mysqli_error($conn);
}
}
//处理删除学生信息的表单提交
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["delete"])) {
$sql = "DELETE FROM students WHERE stu_no='$_POST[stu_no]'";
if (mysqli_query($conn, $sql)) {
echo "删除成功";
} else {
echo "删除失败: " . mysqli_error($conn);
}
}
//处理修改学生信息的表单提交
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["update"])) {
$sql = "UPDATE students SET name='$_POST[name]', gender='$_POST[gender]', age='$_POST[age]', id_card='$_POST[id_card]', major_no='$_POST[major_no]', class_no='$_POST[class_no]', phone='$_POST[phone]', address='$_POST[address]', remark='$_POST[remark]' WHERE stu_no='$_POST[stu_no]'";
if (mysqli_query($conn, $sql)) {
echo "修改成功";
} else {
echo "修改失败: " . mysqli_error($conn);
}
}
//查询学生信息
$sql = "SELECT * FROM students";
$result = mysqli_query($conn, $sql);
?>
<h1>学生信息管理系统</h1>
<h2>添加学生信息</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
学号: <input type="text" name="stu_no"><br>
姓名: <input type="text" name="name"><br>
性别: <input type="radio" name="gender" value="男">男 <input type="radio" name="gender" value="女">女<br>
年龄: <input type="text" name="age"><br>
身份证号: <input type="text" name="id_card"><br>
专业编号: <input type="text" name="major_no"><br>
班级编号: <input type="text" name="class_no"><br>
联系方式: <input type="text" name="phone"><br>
家庭住址: <input type="text" name="address"><br>
备注: <input type="text" name="remark"><br>
<input type="submit" name="add" value="添加">
</form>
<h2>删除学生信息</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
学号: <input type="text" name="stu_no"><br>
<input type="submit" name="delete" value="删除">
</form>
<h2>修改学生信息</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
学号: <input type="text" name="stu_no"><br>
姓名: <input type="text" name="name"><br>
性别: <input type="radio" name="gender" value="男">男 <input type="radio" name="gender" value="女">女<br>
年龄: <input type="text" name="age"><br>
身份证号: <input type="text" name="id_card"><br>
专业编号: <input type="text" name="major_no"><br>
班级编号: <input type="text" name="class_no"><br>
联系方式: <input type="text" name="phone"><br>
家庭住址: <input type="text" name="address"><br>
备注: <input type="text" name="remark"><br>
<input type="submit" name="update" value="修改">
</form>
<h2>学生信息列表</h2>
<table border="1">
<tr>
<th>学号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>身份证号</th>
<th>专业编号</th>
<th>班级编号</th>
<th>联系方式</th>
<th>家庭住址</th>
<th>备注</th>
</tr>
<?php
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>{$row['stu_no']}</td><td>{$row['name']}</td><td>{$row['gender']}</td><td>{$row['age']}</td><td>{$row['id_card']}</td><td>{$row['major_no']}</td><td>{$row['class_no']}</td><td>{$row['phone']}</td><td>{$row['address']}</td><td>{$row['remark']}</td></tr>";
}
?>
</table>
<?php
//关闭数据库连接
mysqli_close($conn);
?>
</body>
</html>
```
在上面的代码中,我们使用了 PHP 语言和 MySQL 数据库来实现一个简单的学生信息管理系统。其中,我们使用了 mysqli_connect() 函数来连接到数据库,使用了 mysqli_query() 函数来执行 SQL 语句,使用了 mysqli_fetch_assoc() 函数来获取查询结果集中的一行数据,使用了 htmlspecialchars() 函数来防止跨站脚本攻击。同时,我们还使用了 HTML 表单来实现添加、删除、修改学生信息的功能,并使用了 HTML 表格来展示学生信息列表。
阅读全文