在操作sqlserver時候用到了substring函數
SUBSTRING ( expression, start, length )
參數
expression
字串、二進位字串、文本、映像、列或包含列的運算式。請勿使用包含彙總函式的運算式。
start
整數或可以隱式轉換為 int 的運算式,指定子字串的開始位置。
length
整數或可以隱式轉換為 int 的運算式,指定子字串的長度(但是結果並補一個返回length字元長度,要看expression的長度和start的設定!!!!!!!!!!!)。
傳回值
如果 expression 是一種支援的字元資料類型,則返回字元資料。如果 expression 是一種支援的位元據類型,則返回位元據。如果 start = 1,則子字串從運算式的第一個字元開始
需要補充一句的是,開始start位置的設定,確實如果設定為1,會從第一個字元開始計數,2,3,4....以此類推、
select substring(ziduan,1,6)
將會選擇欄位的前6個字元,比如說是200908
如果設定為0,
同樣的執行select substring(ziduan,0,6)
結果會是20090,如果換成-1
同樣執行select substring(ziduan,-1,6)
結果會是2009
同樣-2,-3,.................依次類推
下面是網路上的其它一些文章。
substring('98765',-1,3) 結果:9
substring('98765',0,3) 結果:98
substring('98765',1,3) 結果:987
關於函數的這種情況,找了點資料,但是仍不是很明白
SubString($sourceString ,$startingLoc,$length)
$sourceString
資源字串。
$startingLoc
子字串在資源字串中的起點。如果此值為負數或 0,則只返回那些所在位置大於零的字元。如果此值大於 $sourceString 的長度,則返回長度為零的字串。
$length
[可選] 要檢索的字元數。如果沒有指定此值,它將返回從 $startingLoc 中指定的位置開始直到字串末尾的所有字元。
如果此值為負數或 0,則只返回那些所在位置大於零的字元。
入門學習SQL
select substring(convert(varchar,birthdate),5,1) as mon ,* from employees
where substring(convert(varchar,birthdate),5,1)='8'