就是如Y2007020201 就是字母Y+八位的年月日+两位累加编码,论坛里有一些帖子,因本人sql水平太差,一时难以理解,请多多指教。谢谢!!!
解决方案 »
- 还是那份关于SQl的作业,做完了可不知道放哪儿了
- SQL SERVER2005导出INSERT语句nvarchar的中文导出乱码问题
- 进销存,移动加权平均计算成本价格,是不是销售明细表中要有成本价格字段??
- 字段中用逗号分割了串的查询问题
- 一个数据库用户的问题,请高手指点!
- 我想根据一列的值来设置另一列的值 如何用存储过程实现?
- 在线求救,写一个类似交叉结果集的sql (最好结果集能保存在一个table中或者以视图的样式存储)
- SQL server 7.0英文版 + win NT 4.0 英文版数据库字段认大小写吗?
- 这个问题看似简单,实际很难,大家不要轻敌啊!
- 请教大家学习用书的问题
- 有没有在一个数据库里找出最近有进行修改的表的语句!
- 字符串提取
select 'Y'+convert(char(8), getdate(), 112)+'01'--result
-----------
Y2007020301(1 row(s) affected)
go
create function fun(@dt datetime)
returns varchar(20)
as
begin
declare @NO varchar(50)
select @NO=NO from T where NO like 'Y'+convert(char(8), @dt, 112)+'%'
if @NO is null
set @NO='Y'+convert(char(8), @dt, 112)+'01'
else
set @NO=left(@NO, 9)+right('00'+rtrim( (right(@NO, 2)+1) ), 2) return @NO
endinsert T
select dbo.fun(getdate())select * from T--result
NO
--------------------
Y2007020301
Y2007020302
Y2007020303(3 row(s) affected)
declare @randnum varchar(20)
set @intnum= rand()*100000
set @randnum=cast(@intnum as varchar)
set @randnum='Y'+convert(char(8), getdate(), 112)+@randnum
select @randnum