單行函式
函式的理解

分類

數值函式
基本函式

- PI()無引數
- CETL \ CETLING()天花板函式(取比自己大的相鄰的數)
- FLOOR()地板函式(取比自己小的相鄰的數)
- RAND()無引數:隨機;RAND(引數):一個固定的亂數
單行函式可以嵌套
角度與弧度的互換函式

三角函式

指數和對數

進制間的轉換

- CONV(x,f1,f2):f1進制下的x,變成f2進制下的數
字串函式


-
CHAR_LENGTH('字串'):顯示有多少個字符
-
LENGTH('字串'):顯示記憶體層面占多少個位元組
-
CONCAT_WS(x,s1,s2....):用x來連接字符(串)
-
INSERT(s1,int1,int2,s2):從是的第int1開始,數int2個數替換成s2(字串的索引從1開始)
-
LEFT(str,n)和RIGHT(str,n):如果n的數大于字串的長度,則全部輸出
日期和時間函式
獲取日期,時間

select CURDATE(),NOW(),curtime(),utc_date(),utc_timestamp(),utc_time()
from dual;
# 結果
2022-03-05 2022-03-05 09:31:46 09:31:46(北京時間)
2022-03-05 2022-03-05 01:31:46 01:31:46(英國,格林威治時間)
日期和時間戳的轉換

select unix_timestamp(),from_unixtime(1646444141),unix_timestamp('2021-10-01 12:12:32`')
from dual;
#結果
1646444277 2022-03-05 09:35:41 1633061552果
獲取月份,星期,星期數,天數等

注:
- WEEKDAY():回傳周幾,周1是0
- DAYOFWEEK():回傳周幾,周日是1
日期的操作函式
EXTRACT(type FROM data)
SELECT EXTRACT(second FROM NOW())
FROM DUAL;#回傳現在的秒數

時間和秒鐘轉化的函式

select time_to_sec(curtime()),sec_to_time(36265)
from dual;
36265 10:04:25
計算日期和時間的函式
基礎的計算
- 回傳與給定時間相差INTERVAL時間段的日期時間
DATE_ADD(datetime,INTERVAL expr type) \
ADDDATE(date,INTERVAL expr type)
- 回傳與date相差INTERVAL時間間隔的日期
DATE_SUB(date,INTERVAL expr type) \
SUBDATE(date,INTERVAL expr type)

SELECT now(),date_add(now(),interval 1 year),date_add(now(),interval -1 year)
from dual;
#結果
2022-03-05 10:23:59
2023-03-05 10:23:59 加一年
2021-03-05 10:24:14 減一年
注:expr可以是負數(減去);在分鐘和秒數等之間的expr要加下劃線和單引號
復雜的計算

- PERIOD_ADD(時間,n):時間的表達是沒有‘-’的
日期的格式化與決議(顯式)

- 格式化:日期—>字串



select date_format(NOW(),'%Y-%m-%d'),time_format(curtime(),'%h:%i:%s')
from dual;
2022-03-05 11:10:43
- 決議:字串—>日期
select str_to_date('2022-October-05','%Y-%M-%d')
from dual;
2022-10-05
- GET_FORMAT

放入上述的fmt中,自動匹配對應的日期時間格式eg:
select date_format(NOW(),get_format(date,'USA'))
from dual;
流程控制函式(MySQL自帶回圈)

- IF(value,value1,value2):類別C語言中的 ... ? ... : ...陳述句
SELECT id,salay,if(salary >= 5000,'高工資','低工資') "detail"
FROM employees;#判斷高低工資
- IFNULL(value1,value2):只能判斷null的情況
- CASE WHEN...THEN...ELSE...END
CASE WHEN salary >= 10000 THEN '高薪'
else '低薪' END
加密和解密函式

- PASSWORD():在MySQL8.0中棄用
- MD5()和SHA()是不可逆的
- ENCODE()和DECONE()在MySQL8.0中也棄用了
MySQL資訊函式

其他函式

- FORMAT(value,n):若n<=0,則保留整數
- INET_NTOA(value):每個部分分別*256的3、2、1、0次方,再加起來
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/438056.html
標籤:其他
