mysql函式基礎 Mysql中的基礎函式

2021-10-19 21:25:21 字數 3920 閱讀 4348

時間函式

select curdate();   返回2014-09-12,不包含時分秒

select curtime();   返回14:13:22,不包含年月日

select now();      返回2014-09-12 10:46:17

select unix_timestamp(now());  unix_timestamp(date)返回date的unix時間戳

select unix_timestamp(『2013-09-01『); unix時間戳是1970-01-01起經過的秒數,不考慮潤秒,可能會遭遇2023年問題。

select from_unixtime(1184134516);  返回 2007-07-11 14:15:16,與unix_timestamp(date)互為逆操作。

select week(now()),year(now());  返回36與2014, week(date)返回date是一年中的第幾周,year(date)返回date的年份

select hour(now()),minute(now());--返回10與57.hour(date)與minute(date)會返回所給時間的小時,分鐘。

select monthname(now());返回september,返回月份英文

格式化日期值

date_format(date,fmt),按fmt格式化日期date值,讓date隨心所欲地展示特定格式。

select date_format(now(),『%m,%d,%y『);    返回『september,12th,2014『

select date_format(now(),『%y-%m-%d %t『);  返回『2014-09-12 11:06:03『

所給日期差interval時間段的日期

select date_add(now(),interval 31 day);    返回『2014-10-13 11:10:17『 ,這是31天後的日期。

select date_add(now(),interval 『1_2『 year_month); 返回2015-11-12 11:10:55,這是1年又2個月後的日期

select date_add(now(),interval 31 day); 與select date_add(now(),interval,『-1_-2『);  用負數表示依然可以,查31天前的日期與1年又2個月之前的日期。

兩個日期之間相差的天數

select datediff(『2008-08-08『,now());         返回-2226

字串函式

連線字串

select concat(『aa『,『bb『,『cc『); --返回aabbcc

select concat(『aa『,null);     --返回null,因為與null連線就返回null

根據位置做替換與插入

select insert(『zhongguoren『,6,3,『shan『);       --返回zhongshanren,從第6個字元起(包含第6個字元),連續的3個字元替換成『shan『

select insert(『zhongguoren『,6,0,『shan『);         --返回zhongshanguoren,在6個字元前插入『shan『

根據特定字串做替換

select replace(『zhongguo『,『guo『,『shan『);        --返回『zhongshan『

小寫大寫

select lower(『beijing『),upper(『china『);

返回左右子串

select left(『beijing2008『,7),right(『beijing2008『,4) ; --返回beijing與2008

根據位置返回子串

select substring(『beijing2008『,4,8);    --返回『jing2008『

返回第4個字元起(包含第4個字元,連續8個字元)

左右填充

select lpad(『2008『,20,『beijing『),rpad(『beijing『,20,『2008『);     返回beijingbeijingbe2008與beijing2008200820082

lpad(str,n,pad)就是將pad字串在左邊起迴圈填充,直到整個字串達到n長度。

去除左右空格

select ltrim(『   beijing『),rtrim(『beijing    『);  --去除左右空格

select trim(『  beijing  『);

重複字串

select repeat(『mysql 『,3);        返回『mysql mysql mysql『

比較字串的ascii碼大小

select strcmp(『abcd『,『dbca『);  --返回-1

strcmp(s1,s2),如果s1比s2小返回-1,相等返回0,大於返回1.

數值函式

返回絕對值

select abs(-0.8),abs(0.8);  --都返回0.8

天花板整數

select ceil(-0.8),ceil(0.8);    --返回0與1

地板整數

select floor(-0.8),floor(0.8);  --返回-1與0

返回x/y的模

select mod(5,3),5%3;  --都返回2

mod(x,y)與x%y相同

返回0-1之間的隨機值

select rand();

如果想生成0-100之間的隨機整數 select ceil(100*rand());--返回84

返回四捨五入的值

round(x,y)  不填y則y預設是0

select round(1.1) --返回1

select round(1.1,2) --返回1.10

select round(103,0); --精確到個位,返回103

select round(103,-1); --返回100,精確到十位

返回截斷值,與round()相近,區別是截斷而不是四捨五入

select truncate(1.235,2);  --返回1.23

select truncate(18.235,-1);  --返回10

顯示給定數的二進位制值

select bin(4);  --返回100

流程函式

if(value,t,f)  如果value是真,返回t,否則返回f

if函式像oracle的decode   select if(role_id=13,『distributor『,if(role_id=14,『dealer『,null)) as "角色型別" from upgrade.customer;

替換null值函式

ifnull(v1,v2)  如果v1不為空,返回v1,否則返回v2

與if()函式作用一樣的case寫法

select case when salary<=2000 then 『low『 else 『high『 end from salary;

多分支case寫法

select case salary when 1000  then 『low『 when 2000 then 『mid『 else 『high『 end from salary;

其他函式

database()        返回當前資料庫名

version()        返回當前版本

user()        返回當前登入使用者名稱

inet_aton(ip)        返回ip位址的數字表示

inet_ntoa(num)        返回數字代表的ip位址

password(str)        返回字串str的加密版本

md5(str)                    返回字串str的md5值

MySQL基礎 函式

函式與儲存過程的區別 儲存過程 可以有0個返回,也可以有多個返回,適合做批量插入,批量更新 函式 有且僅有乙個返回,適合做資料處理後返回乙個結果 建立語法 create function 函式名 引數列表 returns 返回型別 begin 函式體end 注意 引數列表包含兩部分 引數名 引數型別...

MySQL基礎 字元函式

1.upper和ucase 返回字串str,根據當前字符集對映 預設是iso 8859 1 latin1 把所有的字元改變成大寫。該函式對多位元組是可靠的。2.lower和lcase 返回字串str,根據當前字符集對映 預設是iso 8859 1 latin1 把所有的字元改變成小寫。該函式對多位元...

php中mysql函式 php中mysql有關函式

1.mysql query 一般是用來查詢資料裡面的資料。如 username post name sql select from members where login name username result mysql query sql 以上程式是檢測資料庫中是否存在表單傳送過來的使用者名稱...