MID() 函數(shù)
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、友誼網(wǎng)絡(luò)推廣、成都小程序開發(fā)、友誼網(wǎng)絡(luò)營銷、友誼企業(yè)策劃、友誼品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供友誼建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
MID() 函數(shù)用于從文本字段中提取字符。
具體語法參考:
注意事項如下:
-from 樹懶學(xué)堂
實例
下面的 SQL 語句從 “Websites” 表的 “name” 列中提取前 4 個字符:
自定義函數(shù)分為:標量值函數(shù)或表值函數(shù)
如果?RETURNS?子句指定一種標量數(shù)據(jù)類型,則函數(shù)為標量值函數(shù)??梢允褂枚鄺l?Transact-SQL?語句定義標量值函數(shù)。?
如果?RETURNS?子句指定?TABLE,則函數(shù)為表值函數(shù)。
表值函數(shù)又可分為:內(nèi)嵌表值函數(shù)(行內(nèi)函數(shù))或多語句函數(shù)
如果?RETURNS?子句指定的?TABLE?不附帶列的列表,則該函數(shù)為內(nèi)嵌表值函數(shù)。?
如果?RETURNS?子句指定的?TABLE?類型帶有列及其數(shù)據(jù)類型,則該函數(shù)是多語句表值函數(shù)。
DATEADD
在向指定日期加上一段時間的基礎(chǔ)上,返回新的 datetime 值。
語法
DATEADD ( datepart , number, date )
DATEDIFF
返回跨兩個指定日期的日期和時間邊界數(shù)。
語法
DATEDIFF ( datepart , startdate , enddate )
DATEPART
返回代表指定日期的指定日期部分的整數(shù)。
語法
DATEPART ( datepart , date )
DATENAME
返回代表指定日期的指定日期部分的字符串。
語法
DATENAME ( datepart , date )
比較 DATEADD 和 DATEDIFF
DATEADD 函數(shù)向指定日期添加一段時間間隔。例如,如果 titles 表中所有書籍的發(fā)行日期都推遲三天,則可使用以下語句獲得新的發(fā)行日期:
USE pubs
SELECT DATEADD(day, 3, pubdate)
FROM titles
如果日期參數(shù)的數(shù)據(jù)類型是 smalldatetime,則結(jié)果的數(shù)據(jù)類型也是 smalldatetime??梢允褂?DATEADD 對 smalldatetime 值添加秒或毫秒,但只有當 DATEADD 返回的結(jié)果日期至少改變了 1 分鐘時,這樣做才有意義。
DATEDIFF 函數(shù)計算指定的兩個日期中第二個日期與第一個日期之間各日期部分相差的時間量。換句話說,它得出兩個日期之間的間隔。結(jié)果是等于 date2 - date1 的帶符號整數(shù)值,以各日期部分為單位。
下面的查詢使用日期 1995 年 11 月 30 日,并得出 pubdate 和該日期之間相差的天數(shù)。
USE pubs
SELECT DATEDIFF(day, pubdate, 'Nov 30 1995')
FROM titles
對于 titles 中 pubdate 為 1995 年 10 月 21 日的行,上述查詢生成的結(jié)果為 40。(10 月 21 日和 11 月 30 日之間相差 40 天。)要計算以月為單位的間隔,請使用以下查詢:
USE pubs
SELECT interval = DATEDIFF(month, pubdate, 'Nov 30 1995')
FROM titles
該查詢對 pubdate 值在 10 月的行生成的值為 1,對 pubdate 值在 6 月的行生成的值為 5。
若 DATEDIFF 函數(shù)中的第一個日期晚于指定的第二個日期,則產(chǎn)生的結(jié)果為負數(shù)。由于 titles 中有兩行使用 GETDATE 函數(shù)指派 pubdate 的值,所以這些值被設(shè)置為 pubs 數(shù)據(jù)庫的創(chuàng)建日期,這樣在前面的兩個查詢中這兩行返回負數(shù)。
如果一個或兩個日期參數(shù)是 smalldatetime 值,它們將在內(nèi)部轉(zhuǎn)換為 datetime 值進行計算。為了進行計算,smalldatetime 值中的秒和毫秒將自動設(shè)置為 0。
比較 DATEPART 和 DATENAME
DATEPART 和 DATENAME 函數(shù)將 datetime 值的指定部分(年、季度、天、小時等)生成為整數(shù)值或 ASCII 字符串。由于 smalldatetime 只能精確到分鐘,所以在這兩個函數(shù)中使用 smalldatetime 值時,返回的秒和毫秒部分總是為零。
下面的示例假定日期為 5 月 29 日:
SELECT DATEPART(month, GETDATE())
下面是結(jié)果集:
------------
5
(1 row(s) affected)
SELECT DATENAME(month, GETDATE())
下面是結(jié)果集:
------------
May
(1 row(s) affected)
具體可以參考SQL Server聯(lián)機叢書(安裝SQLServer時自動的幫助)
創(chuàng)建自定義函數(shù):
use 數(shù)據(jù)庫名
go
create function 函數(shù)名
(@pno int)
returns int
as
begin
declare @a int
if not exists(select * from person where pno=@pno)
set @a=-1
else
set @a=1
return @a
end
調(diào)用函數(shù):
use 數(shù)據(jù)庫名
go
select dbo.函數(shù)名(13250)
SQL
中的
substring
函數(shù)是用來抓出一個欄位
資料
中的其中一部分。這個函數(shù)的
名稱
在不同的
資料庫
中不完全一樣:
MySQL:
SUBSTR(
),
SUBSTRING(
)
Oracle:
SUBSTR(
)
SQL
Server:
SUBSTRING(
)
SQL
中的
substring
函數(shù)是用來截取一個欄位資料中的其中一部分。
例如,我們需要將
字符串
'abdcsef'中的‘a(chǎn)bd'給提取出來,則可用substring
來實現(xiàn):
select
substring('abdcsef',1,3)
結(jié)果:
'abd'
括號中數(shù)字‘1'表示截取的起始位置是從該字符串第一個字符開始,‘3'表示截取后得到的字符串
長度
為3個字符。
這是‘substring'最基礎(chǔ)的
語法
,當然,我們的需求有時候會變得比較復(fù)雜,例如以下例子:
我們只想要得到'roomno'中的房間號,發(fā)現(xiàn)起始字符位置并不是固定的,而且,我們需要的房間號長度也不固定。
此時,我們可以運用‘charindex'這個函數(shù)就可以輕松搞定,它是用來定位某個特定字符在該字符串中的位置,即該函數(shù)
得到的結(jié)果是一個用來表示某個特定字符位置的數(shù)字。執(zhí)行如下代碼:
select
room_stand=substring(roomno,charindex('元',roomno)+1,charindex('室',roomno)-charindex('元',roomno)-1)
from
PROPERTY_room
where
roomno
like
'%
單元
%室%'
結(jié)果:
以上所述是小編給大家介紹的Sql
Server中Substring函數(shù)的
用法
實例
解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對
腳本之家
網(wǎng)站的支持!