问一个编号的问题!!

z_yanjie 2007-02-03 02:31:24
就是如Y2007020201 就是字母Y+八位的年月日+两位累加编码,论坛里有一些帖子,因本人sql水平太差,一时难以理解,请多多指教。谢谢!!!
...全文
190 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
txt_ly 2007-02-03
  • 打赏
  • 举报
回复
declare @intnum int
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
feixiangVB 2007-02-03
  • 打赏
  • 举报
回复
顶,学习
marco08 2007-02-03
  • 打赏
  • 举报
回复
create table T(NO varchar(20))
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
end

insert T
select dbo.fun(getdate())

select * from T

--result
NO
--------------------
Y2007020301
Y2007020302
Y2007020303

(3 row(s) affected)
marco08 2007-02-03
  • 打赏
  • 举报
回复

select 'Y'+convert(char(8), getdate(), 112)+'01'

--result
-----------
Y2007020301

(1 row(s) affected)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧