Transact SQL處理中文日期

2021-09-08 21:21:47 字數 1893 閱讀 5735

前一段時間,有網友問及中文日期的問題原來最終要求是需要在sql中處理。

create

function

[dbo].

[udf_converttochinesedate](

@date

datetime

)returns

nvarchar(20

)asbegin

--定義乙個表變數

declare

@digital

table([

d1][tinyint

]not

null,[

d2][nvarchar](

2) notnull,[

d3][nvarchar](

2) notnull)--

把值填充

insert

into

@digital

values(0

,n'〇'

,n'零'

),(1,n'

一',n'

壹'),(2,n'

二',n'

貳'),(3,n'

三',n'

叄'),(4,n'

四',n'

肆'),(5,n'

五',n'

伍'),(

6,n'六

',n'陸

'),(7,n

'七',n

'柒'),(8,n

'八',n

'捌'),(9,n

'九',n

'玖')

--處理接收的變數值轉換為***x-xx-xx日期格式

declare

@string

nvarchar(20

) =convert

(varchar(20

),@date,23

)--處理時乙個臨理變數

declare

@dumpstring

nvarchar(20

) =''declare

@iint=1

--迴圈字串

while

@i<=

len(

@string

)begin

declare

@dump

nvarchar(2

) =substring

(@string,@i

,1)    

--判斷是否為數字if(

@dump

like

'[0-9]')

beginif(

@dump=0

and(@i=

6or@i=

9)) 

--如果第6位和第9位為0省略  

set@dumpstring+=n

''else

set@dumpstring+=(

select[d2

]from

@digital

where[d1

]=@dump

)        

endelse

begin

if@i=5

set@dumpstring+=n

'年'if

@i=8set

@dumpstring+=n

'月'end

set@i=@i

+1endreturn

@dumpstring+n

'日'end

演示:select

[dbo].

[udf_converttochinesedate](

current_timestamp)

結果:

Transact SQL 語言概述

transact sql 語言中標準的sql 語句暢通無阻.transact sql 也有類似於sql 語言的分類,不過做了許多擴充.transact sql 語言的分類如下 珨 br 用來說明變數的命令.耨ddl,data definition language 用來建立資料庫 資料庫物件和定義其...

建立 Transact SQL 作業步驟

在物件資源管理器中,連線到 sql server 資料庫引擎例項,再展開該例項。展開 sql server 建立乙個新作業或右鍵單擊乙個現有作業,再單擊 屬性 有關建立作業的詳細資訊,請參閱建立作業。在 作業屬性 對話方塊中,單擊 步驟 頁,再單擊 新建 在 新建作業步驟 對話方塊中,鍵入作業的 步...

Transact SQL命令之批

批 在建立批的時候,應注意下面幾點 1 只有某些語句可以合併起來建立乙個批,而其它一些語句不能合併。2 不能在同乙個批中既將規則和預設繫結在列上,又使用它們。3 不能在乙個批中刪除物件又重新建立它們。4 不能在乙個批中修改乙個表並引用新列。5 不能在乙個批中定義並使用check約束。6 使用set語...