在操作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'