mysql,SQL Server經常使用函數整理,以備不時之需

        很久沒有用到數據庫函數了,今天用到了,順便把之前的也整理一下。我的感受其實大體都差很少,數據庫我只會三種,mysql,sqlserver,oracle,因爲oracle實在太佔內存了,在公司也沒怎麼用,今天整理下mysql和sqlserver的吧。 前端

MySQL

字符類: mysql

CHARSET(str) //返回字串字符集
CONCAT (string2 [,... ]) //鏈接字串
INSTR (string ,substring ) //返回substring首次在string中出現的位置,不存在返回0
LCASE (string2 ) //轉換成小寫
LEFT (string2 ,length ) //從string2中的左邊起取length個字符
LENGTH (string ) //string長度
LOAD_FILE (file_name ) //從文件讀取內容
LOCATE (substring , string [,start_position ] ) 同INSTR,但可指定開始位置
LPAD (string2 ,length ,pad ) //重複用pad加在string開頭,直到字串長度爲length
LTRIM (string2 ) //去除前端空格
REPEAT (string2 ,count ) //重複count次
REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替換search_str
RPAD (string2 ,length ,pad) //在str後用pad補充,直到長度爲length
RTRIM (string2 ) //去除後端空格
STRCMP (string1 ,string2 ) //逐字符比較兩字串大小,
SUBSTRING (str , position [,length ]) //從str的position開始,取length個字符,
注:mysql中處理字符串時,默認第一個字符下標爲1,即參數position必須大於等於1

數學類: sql

ABS (number2 ) //絕對值
BIN (decimal_number ) //十進制轉二進制
CEILING (number2 ) //向上取整
CONV(number2,from_base,to_base) //進制轉換
FLOOR (number2 ) //向下取整
FORMAT (number,decimal_places ) //保留小數位數
HEX (DecimalNumber ) //轉十六進制
注:HEX()中可傳入字符串,則返回其ASC-11碼,如HEX('DEF')返回4142143
也能夠傳入十進制整數,返回其十六進制編碼,如HEX(25)返回19
LEAST (number , number2 [,..]) //求最小值
MOD (numerator ,denominator ) //求餘
POWER (number ,power ) //求指數
RAND([seed]) //隨機數
ROUND (number [,decimals ]) //四捨五入,decimals爲小數位數]

日期類: 數據庫


ADDTIME (date2 ,time_interval ) //將time_interval加到date2
CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //轉換時區
CURRENT_DATE ( ) //當前日期
CURRENT_TIME ( ) //當前時間
CURRENT_TIMESTAMP ( ) //當前時間戳
DATE (datetime ) //返回datetime的日期部分
DATE_ADD (date2 , INTERVAL d_value d_type ) //在date2中加上日期或時間
DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式顯示datetime
DATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上減去一個時間
DATEDIFF (date1 ,date2 ) //兩個日期差
DAY (date ) //返回日期的天
DAYNAME (date ) //英文星期
DAYOFWEEK (date ) //星期(1-7) ,1爲星期天
DAYOFYEAR (date ) //一年中的第幾天
EXTRACT (interval_name FROM date ) //從date中提取日期的指定部分
MAKEDATE (year ,day ) //給出年及年中的第幾天,生成日期串
MAKETIME (hour ,minute ,second ) //生成時間串
MONTHNAME (date ) //英文月份名
NOW ( ) //當前時間
SEC_TO_TIME (seconds ) //秒數轉成時間
STR_TO_DATE (string ,format ) //字串轉成時間,以format格式顯示
TIMEDIFF (datetime1 ,datetime2 ) //兩個時間差
TIME_TO_SEC (time ) //時間轉秒數]
WEEK (date_time [,start_of_week ]) //第幾周
YEAR (datetime ) //年份
DAYOFMONTH(datetime) //月的第幾天
HOUR(datetime) //小時
LAST_DAY(date) //date的月的最後日期
MICROSECOND(datetime) //微秒
MONTH(datetime) //月
MINUTE(datetime) //分返回符號,正負或0
SQRT(number2) //開平方



SQL Server


字符類 後端

select CHARINDEX('Ly','My name is ly')--尋找一個字符在一段字符串中起始的位置
select LEN('zhangsan')--獲取一段字符串的長度
select UPPER('Yang')--將一段小寫的字符串轉換爲大寫
select LTRIM('   zhangsan')--去除一段字符左邊的空格
select RTRIM('zhang   san   ')--去除一段字符右邊的空格
select RIGHT('Ly,君子之耀',4)--從一段字符串右邊返回指定長度的字符
select LEFT('Ly,君子之耀',2)--從一段字符串左邊返回指定長度的字符
select STUFF('abcdefg',2,4,'張三')--從指定的位置刪除指定長度的字符串並替換爲新的字符串
select REPLACE('揚子之耀','揚子','君')--將一段字符串中指定的字符串替換爲另外一段字符串



日期函數

select GETDATE()--獲取當前系統時間
select DATEADD(MM,1,'2013-12-2')--將指定的數值添加到指定的日期段後
select DATEDIFF(mm,'1993-6-15',GETDATE())--兩個時間段中指定的間隔部分
select DATENAME(DW,'2013-1-1')--指定日期字符串中指定時間段的字符串格式
select DATEPART(mm,'2013-01-01')--獲取指定日期部分的整數形式



數學函數

select RAND()--獲取0-1之間的隨機float數
select ABS(-10)--獲取絕對值
select CEILING(23.1)--取一個float類型數值的整數形式,向上取整數
select FLOOR(23.1)--同上,但此函數爲向下取整數
select POWER(2,3)--取一個數值的次方
select ROUND(199.119,2)--返回一個float型數值的四捨五入形式並取指定的保留小數位數
select SIGN(-10)--若是是一個負數則返回-1,若是爲正數則返回1,爲0則返回0
select SQRT(25)--取一個數字的平方根



系統函數

select CONVERT(int,12.6)--將一個數據轉換爲指定的數據類型
select DATALENGTH('abcde')--返回一個字符串的長度
相關文章
相關標籤/搜索