很久沒有用到數據庫函數了,今天用到了,順便把之前的也整理一下。我的感受其實大體都差很少,數據庫我只會三種,mysql,sqlserver,oracle,因爲oracle實在太佔內存了,在公司也沒怎麼用,今天整理下mysql和sqlserver的吧。 前端
字符類: 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) //開平方
字符類 後端
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')--返回一個字符串的長度