一、
--SQL SERVER 15位身份证号转18位身份证
CREATE FUNCTION ID15TO18 (@id15 char(15))
RETURNS CHAR(18) AS
BEGIN
DECLARE @ID18 CHAR(18),@S18 bigint
SET @S18 = ( (SUBSTRING(@ID15,1,1)*7) + (SUBSTRING(@ID15,2,1)*9) + (SUBSTRING(@ID15,3,1)*10)
+ (SUBSTRING(@ID15,4,1)*5) + (SUBSTRING(@ID15,5,1)*8) + (SUBSTRING(@ID15,6,1)*4) + (1*2) + (9*1)
+ (SUBSTRING(@ID15,7,1)*6) + (SUBSTRING(@ID15,8,1)*3) + (SUBSTRING(@ID15,9,1)*7)
+ (SUBSTRING(@ID15,10,1)*9)+ (SUBSTRING(@ID15,11,1)*10)+ (SUBSTRING(@ID15,12,1)*5)
+ (SUBSTRING(@ID15,13,1)*8) +(SUBSTRING(@ID15,14,1)*4) + (SUBSTRING(@ID15,15,1)*2) ) % 11
SET @ID18 = SUBSTRING(@ID15,1,6) + '19' + SUBSTRING(@ID15,7,9) +
CASE
WHEN @S18 = 0 THEN '1'
WHEN @S18 = 1 THEN '0'
WHEN @S18 = 2 THEN 'X'
WHEN @S18 = 3 THEN '9'
WHEN @S18 = 4 THEN '8'
WHEN @S18 = 5 THEN '7'
WHEN @S18 = 6 THEN '6'
WHEN @S18 = 7 THEN '5'
WHEN @S18 = 8 THEN '4'
WHEN @S18 = 9 THEN '3'
WHEN @S18 = 10 THEN '2'
END
RETURN @ID18
END
GO
SELECT DBO.ID15TO18('????????????????')
DROP FUNCTION ID15TO18
二、
C# code
-- 18位身份证号转15位身份证
CREATE FUNCTION ID18TO15 (@id18 char(18))
RETURNS CHAR(15) AS
BEGIN
DECLARE @ID15 CHAR(15)
SET @ID15 = SUBSTRING(@id18,1,6) + SUBSTRING(@id18,9,9)
RETURN @ID15
END
GO
SELECT DBO.ID18TO15('3210*****605026619')
DROP FUNCTION ID18TO15
三、
--===================================================================
--15位号码升级为18位
--===================================================================
Create FUNCTION [dbo].[ID15TO18] (@id15 char(15))
/*功能:将身份证的15位号码升级为18位
--
-- --调用函数
-- update
-- 表
-- set
-- 身份证号 = dbo.ID15TO18(身份证号)
-- where
-- LEN(身份证号) = 15
--
--
*/
RETURNS CHAR(18)
AS
BEGIN
DECLARE @ID18 CHAR(18)
DECLARE @S1 AS INTEGER
DECLARE @S2 AS INTEGER
DECLARE @S3 AS INTEGER
DECLARE @S4 AS INTEGER
DECLARE @S5 AS INTEGER
DECLARE @S6 AS INTEGER
DECLARE @S7 AS INTEGER
DECLARE @S8 AS INTEGER
DECLARE @S9 AS INTEGER
DECLARE @S10 AS INTEGER
DECLARE @S11 AS INTEGER
DECLARE @S12 AS INTEGER
DECLARE @S13 AS INTEGER
DECLARE @S14 AS INTEGER
DECLARE @S15 AS INTEGER
DECLARE @S16 AS INTEGER
DECLARE @S17 AS INTEGER
DECLARE @S18 AS INTEGER
SET @S1=SUBSTRING(@ID15,1,1)
SET @S2=SUBSTRING(@ID15,2,1)
SET @S3=SUBSTRING(@ID15,3,1)
SET @S4=SUBSTRING(@ID15,4,1)
SET @S5=SUBSTRING(@ID15,5,1)
SET @S6=SUBSTRING(@ID15,6,1)
SET @S7=1
SET @S8=9
SET @S9=SUBSTRING(@ID15,7,1)
SET @S10=SUBSTRING(@ID15,8,1)
SET @S11=SUBSTRING(@ID15,9,1)
SET @S12=SUBSTRING(@ID15,10,1)
SET @S13=SUBSTRING(@ID15,11,1)
SET @S14=SUBSTRING(@ID15,12,1)
SET @S15=SUBSTRING(@ID15,13,1)
SET @S16=SUBSTRING(@ID15,14,1)
SET @S17=SUBSTRING(@ID15,15,1)
SET @S18=((@S1*7)+(@S2*9)+(@S3*10)+(@S4*5)+(@S5*8)+(@S6*4)+(@S7*2)+(@S8*1)
+(@S9*6)+(@S10*3)+(@S11*7)+(@S12*9)+(@S13*10)+(@S14*5)+(@S15*8)+(@S16
*4)+(@S17*2))%11
SET @ID18=SUBSTRING(@ID15,1,6)+'19'+SUBSTRING(@ID15,7,9)
+CASE WHEN @S18=0 THEN '1'
WHEN @S18=1 THEN '0'
WHEN @S18=2 THEN 'X'
WHEN @S18=3 THEN '9'
WHEN @S18=4 THEN '8'
WHEN @S18=5 THEN '7'
WHEN @S18=6 THEN '6'
WHEN @S18=7 THEN '5'
WHEN @S18=8 THEN '4'
WHEN @S18=9 THEN '3'
WHEN @S18=10 THEN '2'
END
RETURN @ID18
END
分享到:
相关推荐
sql 语句 根据身份证号计算年龄,oracl数据库可以直接运行
整理的最新版的全国身份证号码(前六位)与地区之间对应关系,包括Excel、Json、SQL、CSV各种格式,可以在Excel、日常开发等环境中使用。
总结来说,全国身份证地域数据库是一个包含中国所有县市级别身份证号码信息的重要资源,通过SQL语句可以高效地进行数据操作,对于开发、数据分析以及各类业务应用具有极高的价值。掌握并运用好这个数据库,可以帮助...
在使用SQL Server 2000进行数据库附加操作时,可能会遇到错误602的问题:“Could not find row in sysindexes for database ID 13, object ID 1, index ID 1. Run DBCC CHECKTABLE on sysindexes.” 这一错误通常...
《数据挖掘原理与应用——SQL Server 2005 数据库》是一本深入探讨数据挖掘技术的书籍,其中包含了丰富的算法实例,旨在帮助读者理解并掌握如何在SQL Server 2005环境下进行数据挖掘实践。数据挖掘是利用统计学、...
### MySQL数据库校验身份证函数详解 #### 一、引言 在进行用户信息验证时,身份证号的有效性检查是一项常见的需求。特别是在中国,一个合法有效的身份证号码必须符合一定的格式规范和逻辑规则。本文将深入解析...
列举所有证件号码段对应的省份、城市、区镇。 通过insert into插入表格。 如 insert into card_info(provinceID,cityID,regionID,province,city,region) values(13,1305,130524,河北省,邢台市,柏乡县). ...
sqlserver 计算数据库时间差sqlserver 计算数据库时间差sqlserver 计算数据库时间差sqlserver 计算数据库时间差sqlserver 计算数据库时间差
【SQL数据库算法应用】 在计算机领域,算法是解决复杂问题的核心工具,而在SQL数据库中,算法的运用至关重要,尤其在面对大规模数据和复杂业务逻辑时。数据库不仅用于存储数据,还执行大量的计算任务,包括数据的...
以下将详细讲解如何使用C++通过ADO连接到SQL Server数据库,并基于提供的"ConnDatabase"源代码进行学习。 1. ADO简介:ADO是微软的组件对象模型(COM)接口,它提供了一种简单的方式来访问各种数据源,包括SQL ...
《SQL Server 2008数据库设计与实现》是关系型数据库设计与开发方面的一本经典著作,由资深数据库专家撰写,旨在向读者介绍世界上最受欢迎的数据库管理系统之一——SQL Server 2008。全书分为三个部分,从基础概念到...
将mysql数据库转换为sql server的数据库,或者将sql server数据库转换...这里介绍一个使用sql的mmc的方法 ,将sql server的数据转化为mysql的数据库,将源和目的反之,就可以将mysql的数据库转化为sql server的数据库。
- **校验码验证**:使用上述提到的算法来计算校验码,然后与身份证号码中的校验码进行比较,如果一致则返回1,否则返回0。 #### 五、注意事项 1. **输入数据有效性**:确保输入的数据符合15位或18位身份证号码的...
在Java应用程序中使用SQL Server 2008数据库驱动jar包,首先需要将对应的jar文件(如`mssql-jdbc.jar`或`sqljdbc4.jar`)添加到项目的类路径中。这样,Java虚拟机在运行时就能找到并加载驱动,从而建立与SQL Server...
SQL2000和SQL2005批量附加数据库工具是一款高效实用的软件,专为管理和维护Microsoft SQL Server 2000及2005数据库设计。它提供了一个便捷的方式来一次性附加多个数据库,极大地提高了数据库管理员的工作效率,特别...
在MySQL数据库中,通常我们不直接使用SQL来执行排序算法如冒泡排序,因为SQL是设计用来查询和操作数据的,而不是执行通用的计算或算法任务。然而,为了教学目的,我们可以尝试模拟冒泡排序的过程,但请注意这种方法...
数据库设计是IT领域中的核心部分,特别是在关系型数据库如SQL Server中,良好的设计能确保系统的高效性和数据的一致性。以下是对"sqlserver 数据库设计模板"的详细说明: 1. **引言** - **编写目的**:设计模板...
快捷方便,可查看sqlserver数据库每个表的使用情况,一次下载终身使用,此文件为sql语句格式,免费试用
中控考勤软件 SQL Server 数据库建立办法详解 在本文中,我们将详细介绍中控考勤软件 SQL Server 数据库建立的方法,该方法可以方便用户对数据进行处理。 首先,让我们了解什么是 SQL Server 数据库。SQL Server ...
通过上述内容,文章详细介绍了如何使用Excel VBA_ADO技术来创建和操作SQL Server应用数据库,包括设计数据库结构、编写连接代码、执行SQL语句等重要知识点。这对于希望掌握Excel与SQL Server数据库交互的IT专业人士...