sql常用函数总结
| 函數(shù)名稱 | 參數(shù) | 示例 | 說明 |
| ascii | (字符串表達(dá)式) | select ascii('abc') 返回 97 | 返回字符串中最左側(cè)的字符的 ASCII碼。 |
| char | (整數(shù)表達(dá)式) | select char(100) 返回 d | 把ASCII 碼轉(zhuǎn)換為字符。 介于 0 和 255 之間的整數(shù)。如果該整數(shù)表達(dá)式不在此范圍內(nèi),將返回 NULL 值。 |
| charindex | (字符串表達(dá)式1,字符串表達(dá)式2[,整數(shù)表達(dá)式]) | select charindex('ab','BCabTabD')返回3 select charindex('ab','BCabTabD',4)返回6 | 在字符串2中查找字符串1,如果存在返回第一個匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一個是null則返回null。 可以指定在字符串2中查找的起始位置。 |
| difference | (字符串表達(dá)式1,字符串表達(dá)式2) | select difference('Green','Greene')返回4 | 返回一個0到4的整數(shù)值,指示兩個字符表達(dá)式的之間的相似程度。0 表示幾乎不同或完全不同,4表示幾乎相同或完全相同。注意相似并不代表相等 |
| left | (字符串表達(dá)式,整數(shù)表達(dá)式) | select left('abcdefg',2) 返回 ab | 返回字符串中從左邊開始指定個數(shù)的字符。 |
| right | (字符串表達(dá)式,整數(shù)表達(dá)式) | select right('abcdefg',2) 返回fg | 返回字符串中從右邊開始指定個數(shù)的字符。 |
| len | (字符串表達(dá)式) | select len('abcdefg')返回 7 select len('abcdefg???? ') 返回7 | 返回指定字符串表達(dá)式的字符數(shù),其中不包含尾隨空格。 |
| lower | (字符串表達(dá)式) | select lower('ABCDEF')返回 abcdef | 返回大寫字符數(shù)據(jù)轉(zhuǎn)換為小寫的字符表達(dá)式。 |
| upper | (字符串表達(dá)式) | select upper('abcdef')返回 ABCDEF | 返回小寫字符數(shù)據(jù)轉(zhuǎn)換為大寫的字符表達(dá)式。 |
| ltrim | (字符串表達(dá)式) | select ltrim('??? abc')返回 abc | 返回刪除了前導(dǎo)空格之后的字符表達(dá)式。 |
| rtrim | (字符串表達(dá)式) | select rtrim('abc??? ')返回 abc | 返回刪除了尾隨空格之后的字符表達(dá)式。 |
| patindex | (字符串表達(dá)式1,字符串表達(dá)式2) | select patindex('%ab%','123ab456')返回4 select patindex('ab%','123ab456')返回0 select patindex('___ab%','123ab456')返回1 select patindex('___ab_','123ab456')返回0 | 在字符串表達(dá)式1中可以使用通配符,此字符串的第一個字符和最后一個字符通常是%。 %表示任意多個字符,_表示任意字符 返回字符串表達(dá)式2中字符串表達(dá)式1所指定模式第一次出現(xiàn)的起始位置。沒有找到返回0 |
| reverse | (字符串表達(dá)式) | select reverse('abcde')返回 edcba | 返回指定字符串反轉(zhuǎn)后的新字符串 |
| space | (整數(shù)表達(dá)式) | select 'a'+space(2)+'b' 返回 a? b | 返回由指定數(shù)目的空格組成的字符串。 |
| str | (float型小數(shù)[,總長度[,小數(shù)點后保留的位數(shù)]]) | select str(123.451)返回?? 123(123前面有空格) select str(123.451,3)返回123 select str(123.451,7,3)返回123.451 select str(123.451,7,1)返回123.5 select str(123.451,5,3)返回123.5 select str(123.651,2)返回** | 返回由數(shù)字轉(zhuǎn)換成的字符串。返回字符數(shù)不到總長度的前面補(bǔ)空格,超過總長度的截斷小數(shù)位。如果需要截斷整數(shù)位則返回**。 注意在截斷時遵循四舍五入 總長度。它包括小數(shù)點、符號、數(shù)字以及空格。默認(rèn)值為 10。 小數(shù)點后最多保留16位。默認(rèn)不保留小數(shù)點后面的數(shù)字 |
| stuff | (字符串表達(dá)式1,開始位置,長度,字符串表達(dá)式2) | select stuff('abcdef',2,2,'123') 返回 a123def | 在字符串表達(dá)式1中在指定的開始位置刪除指定長度的字符,并在指定的開始位置處插入字符串表達(dá)式2。返回新字符串 |
| substring | (字符串表達(dá)式,開始位置,長度) | select substring('abcdef',2,2)返回bc | 返回子字符串 |
| replace | (字符串表達(dá)式1,字符串表達(dá)式2,字符串表達(dá)式3) | select replace('abcttabchhabc','abc','123') 返回 123tt123hh123 | 用字符串表達(dá)式3替換字符串表達(dá)式1中出現(xiàn)的所有字符串表達(dá)式2的匹配項。返回新的字符串 ? |
日期和時間函數(shù)
| 函數(shù)名稱 | 參數(shù) | 示例 | 說明 |
| dateadd | (日期部分,數(shù)字,日期) | select dateadd(year,45,'1990-12-11') 返回 2035-12-11 00:00:00.000 select dateadd(month,45,'1990-12-11') 返回1994-09-11 00:00:00.000 select dateadd(mm,45,'1990-12-11') 返回1994-09-11 00:00:00.000 select dateadd(qq,12,'1990-12-11') 返回1993-12-11 00:00:00.000 select dateadd(hh,12,'1990-12-11') 返回1990-12-11 12:00:00.000 select dateadd(yy,-12,'1990-12-11') 返回1978-12-11 00:00:00.000 | 返回給指定日期加上一個時間間隔后的新的日期值。 數(shù)字:用于與指定的日期部分相加的值。如果指定了非整數(shù)值,則將舍棄該值的小數(shù)部分,舍棄時不遵循四舍五入。 日期:指定的原日期 在此函數(shù)中 dw,dy,dd效果一樣都表示天 |
| datediff | (日期部分,開始日期,結(jié)束日期) | select datediff(yy,'1990-12-11','2008-9-10') 返回 18 select datediff(mm,'2007-12-11','2008-9-10') 返回 9 | 返回兩個指定日期的指定日期部分的差的整數(shù)值。 在計算時由結(jié)束日期減去開始日期 在此函數(shù)中 dw,dy,dd效果一樣都表示天 |
| datename | (日期部分,日期) | select datename(mm,'2007-12-11')返回12 select datename(dw,'2007-12-11')返回星期二 select datename(dd, '2007-12-11')返回11 | 返回表示指定日期的指定日期部分的字符串。 dw表示一星期中星期幾,wk表示一年中的第幾個星期 dy表示一年中的第幾天 |
| datepart | (日期部分,日期) | select datepart(mm,'2007-12-11')返回12 select datepart(dw,'2007-12-11')返回3 select datepart(dd, '2007-12-11')返回11 | 返回表示指定日期的指定日期部分的整數(shù)。 wk表示一年中的第幾個星期 dy表示一年中的第幾天, dw表示一星期中星期幾,返回整數(shù)默認(rèn)1為星期天 |
| getdate | 無參數(shù) | select getdate() 返回2009-04-28 18:57:24.153 | 返回當(dāng)前系統(tǒng)日期和時間。 |
| day | (日期) | select day('2007-12-11')返回11 | 返回一個整數(shù),表示指定日期的天的部分。 等價于datepart(dd, 日期) |
| month | (日期) | select month('2007-12-11')返回12 | 返回一個整數(shù),表示指定日期的月的部分。 等價于datepart(mm, 日期) |
| year | (日期) | select year('2007-12-11')返回2007 | 返回一個整數(shù),表示指定日期的年的部分。 等價于datepart(yy, 日期) |
| getutcdate | 無參數(shù) | select getutcdate() 返回2009-04-28 10:57:24.153 | 返回表示當(dāng)前的 UTC(世界標(biāo)準(zhǔn)時間)時間。即格林尼治時間(GMT) |
| ? | ? | ? | ? |
| ? | ? | ? | ? |
?
日期部分
?
(指定要返回新值的日期的組成部分。下表列出了 Microsoft SQL Server 2005 可識別的日期部分及其縮寫。)
| 日期部分 | 含義 | 縮寫 |
| year | 年 | yy, yyyy |
| quarter | 季 | qq, q |
| month | 月 | mm, m |
| dayofyear | 天(請看函數(shù)中的說明) | dy, y |
| day | 天(請看函數(shù)中的說明) | dd, d |
| week | 星期 | wk, ww |
| weekday | 天(請看函數(shù)中的說明) | dw, w |
| hour | 小時 | hh |
| minute | 分鐘 | mi, n |
| second | 秒 | ss, s |
| millisecond | 毫秒 | ms |
?
好用的例子:
6.1計算一個月第一天的SQL 腳本:SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
6.2一年的第一天的SQL 腳本:SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
6.3本周的星期一的SQL 腳本: SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
6.4 季度的第一天的SQL 腳本:SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)?
6.5當(dāng)天的半夜的SQL 腳本:SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
6.6上個月的最后一天的SQL 腳本:SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
6.7去年的最后一天的SQL 腳本:SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
6.8本月的最后一天的SQL 腳本:?? SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))???
6.9 本年的最后一天的SQL 腳本: SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
6.10本月的第一個星期一的SQL 腳本:select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)?
轉(zhuǎn)載于:https://www.cnblogs.com/fengpiaoling/p/3945191.html
總結(jié)
- 上一篇: 自己动手制作(DIY)一个Mini-Li
- 下一篇: CentOS安装PPTP ×××