生成流水號碼

2021-08-27 13:34:31 字數 1771 閱讀 8345

在程式設計中,尤其是針對企業應用的開發,不可以避免的會要生成大量的編號,比如訂單編號、入庫編號等。現在利用sql的儲存過程可以方便的實現自動編號,可以大大的提高程式的復用和減少**的編寫。

主要是利用sql中的convert函式來對日期進行格式化。

比如要做這樣的乙個編號結構:

標識(2位) 日期時間(14位) 流水號(4位)

bh 200702271609541001

程式**如下:

@myval

nvarchar(20

),@maxval

nvarchar(4

)select

@maxval

=max

(right

(inequipnum,4))

+1from

inequip --inequipnum 為編號字段,取最後4位並加1

set@myval

=convert

(varchar(12

),getdate

(),112

)+--取日期組合

(substring

(convert

(varchar(20

),getdate

(),120

),12,2

))+ --取小時

(substring

(convert

(varchar(20

),getdate

(),120

),15,2

))+ --取分鐘

(substring

(convert

(varchar(12

),getdate

(),108),7

,2))+

--取秒

(select

case

when

@maxval

isnull

then

'1000

'--如果編號為空,則先給出乙個值

else

@maxval

end)

select

@myval編號

執行後結果如:bh200702271609541001

附convert函式使用說明:

使用 convert:

convert (data_type[(length)], expression [, style])

select convert(varchar, getdate(), 120 )

2004-09-12 11:06:08

select replace(replace(replace(convert(varchar, getdate(), 120 ),/'-/',/'/'),/' /',/'/'),/':/',/'/')

20040912110608

select convert(varchar(12) , getdate(), 111 )

2004/09/12

select convert(varchar(12) , getdate(), 112 )

20040912

select convert(varchar(12) , getdate(), 102 )

2004.09.12

select convert(varchar(12) , getdate(), 101 )

09/12/2004

select convert(varchar(12) , getdate(), 108 )

11:06:08

SQL生成流水號

經過了幾次的測試終於成功了 declare year int,month int,day int,temp no varchar 12 needno varchar 4 no varchar 20 number varchar 50 randno varchar 50 nu varchar 10 s...

php生成流水號

function createn i else if i 100 else if i 1000 else echo substr 2012050010 0,6 echo createn 2 2 echo createn 9 9 echo createn 10 10 echo createn 11 1...

Oracle 生成流水號

輔助表 rul sequence 表中資料如圖 輔助儲存過程 proc getseqence create or replace procedure proc getseqence seqcode in varchar2,returnnum out varchar2,messagecode out ...