根据当前年月,例如‘201512’,查询数据库获取3位的数字,如果数据库中没有,则获取201512001,如果有,数据库中原来是201512010,则获取的下一个编号2015011.
SELECT '201512' + REPLACE(STR(ISNULL(CAST(MAX(SUBSTRING('201512',LEN('201512')+1,3)) AS INT),0)+1,3),' ','0') FROM 数据表名称 WHERE SUBSTRING('字段名',1,LEN('201512'))='201512'
string sql = @"SELECT @PreID + REPLACE(STR(ISNULL(CAST(MAX(SUBSTRING(FieldName,LEN(@PreID)+1,@NumLen)) AS INT),0)+1,@NumLen),' ','0')
FROM TableName WHERE SUBSTRING(FieldName,1,LEN(@PreID))=@PreID;";
@PreID 代表日期 @NumLen代表@PreID后面跟几位数字
1.SUBSTRING字符串的截取
SELECT SUBSTRING('1234',1,1)
截取的字符串,开始位置,截取的长度
2.STR
将数值型转换成指定长度的字符串
如select STR(12345.633,7,1) 结果为12345.6
第一个参数是要转换的数