中卫市网站建设_网站建设公司_百度智能云_seo优化
2025/12/31 9:45:45 网站建设 项目流程

一,常用的函数

1,日期时间函数

【1】,date_add()/date_sub()-日期加减

-- 格式,n 表示变化的时间,负数则表示相反的变化
date_add(date,interval n [day,month,year])
date_sub(date,interval n [day,month,year])-- 案例
select date_add('2025-12-27',interval 3 day);   -- 2025-12-30
select date_sub('2025-12-27',interval -1 month);   --2026-01-27

【2】,date_formate()-日期格式化

-- 格式,%Y-%m-%d %H:%i:%s 表示 2025-12-27 16:52:46
date_formate(date,'%Y-%m-%d %H:%i:%s')-- 案例
select date_formate(noww(),'%Y-%m');   -- 2025-12
select date_formate(now(),'%Y年%m月%d日')   -- 2025年12月27日
select date_formate(now(),'%H:%i:%s')   -- 10:44:34

【3】,now()/curdate()/curtime()-当前的时间

-- 例子
select now();  -- 2025-12-27 10:46:25
select curdate();   -- 2025-12-27
select curtime();   -- 10:46:25

【4】,date()/time()/YEAR()/MONTH()/DAY()-日期提取/时间提取/年提取/月提取/日提取

-- 格式
DATE(date);
TIME(date);
YEAR(DATE);
MONTH(date);
DAY(date);-- 案例
select DATE(now());   -- 2025-12-27
SELECT TIME(now());   -- 10:46:25
SELECT YEAR(now());   -- 2025
SELECT MONTH(now());   -- 12
SELECT DAY(now());   -- 27

2,字符串函数

【1】,concat()-字符串连接函数

-- 格式
CONCAT(str1,str2,...)-- 案例
select CAONCAT('welcome to','my blogs!');   -- welcome to my blogs!

【2】,substr()/substring()-字符串截取

-- 格式;str-截取的字符串,pos-表示起始的位置,len-截取的字符串数量
SUBSTR(str,pos,len);
SUBSTRING(str,pos,len);
SUBSTRING_INDEX(str, delim, count);-- 案例
select substr('welcome to my blogs!',1,7);   -- welcome
-- 当count为负数的时候,从右往左截取;为正数的时候,从左往右截取,并且不属于贪婪模式。
SELECT SUBSTRING_INDEX('/www/user/uploads/photo.jpg', '/', -1);   -- 'photo.jpg'

【3】,length()/char_length()-字符串长度

-- 例子
-- 返回字节数
select length('你好');   -- 6(utf8格式,默认一个中文3个字节)
-- 返回字符数
select char_length('你好');   -- 2

【4】,upper()/lower()-大小转换

-- 案例
SELECT UPPER('hello'); -- 'HELLO'
SELECT LOWER('WORLD'); -- 'world'-- 当在查询字符串的时候希望区分大小写,可以在查询之前加上 binary,因为binary 会触发二元比较,但不会修改储存值。
-- 这个查询结果会严格按照大小写查询出来,不会存在col='wm',或者col='wM'的情况
select * from tmp_table where binary col='Wm';

【5】,TRIM()/LTRIM()/RTRIM()-去除空格

-- 案例
select trim('  welcome ');   -- 'welcome'
select ltrim('  welcome');   -- 'welcome'
select rtrim('welcome  ');   -- 'welcome'

【6】,replace()-替换字符串

-- 案例
SELECT REPLACE('Hello my blogs', 'my blogs', 'MySQL'); -- 'Hello MySQL'

【7】,instr()/LOCATE()-查找字符串位置

-- 格式
INSTR(主字符串, 子串)
-- 起始位置可选
LOCATE(子串, 主字符串 [,起始位置])-- 案例
SELECT INSTR('Hello World', 'World');  -- 返回:7
SELECT INSTR('hello world', 'abc');    -- 返回:0(未找到)SELECT LOCATE('World', 'Hello World');     -- 返回:7-- 可以指定起始位置(这是LOCATE独有的优势)
SELECT LOCATE('o', 'Hello World', 5);      -- 返回:8(从第5个字符开始找)
SELECT LOCATE('o', 'Hello World', 9);      -- 返回:0(从第9个字符开始没找到)

【8】,LPAD() / RPAD() - 填充字符串

-- 案例
SELECT LPAD('123', 5, '0'); -- '00123'
SELECT RPAD('123', 5, '*'); -- '123**'

3,数值函数

【1】,ROUND() - 四舍五入

-- 案例
SELECT ROUND(123.4567, 2); -- 123.46
SELECT ROUND(123.4567, 0); -- 123
SELECT ROUND(123.4567, -2); -- 100

【2】,CEIL() / CEILING() - 向上取整

-- 案例
SELECT CEIL(123.45);  -- 124
SELECT CEILING(123.01); -- 124

【3】,ABS()-绝对值

-- 案例
select ABS('-124');   -- 124

【4】,MOD() / % - 取模运算

-- 案例
SELECT MOD(10, 3); -- 1
SELECT 10 % 3;     -- 1

4,条件函数

【1】,IF() - 简单条件判断

-- 案例
SELECT IF(ABS('-89') >= 60, '及格', '不及格');   -- '及格'

【2】,CASE WHEN - 复杂条件判断

-- 案例
SELECTscore,CASEWHEN score >= 90 THEN '优秀'WHEN score >= 80 THEN '良好'WHEN score >= 60 THEN '及格'ELSE '不及格'END AS grade
FROM exam_results;

【3】,IFNULL() / NULLIF()-空判断

-- 案例
-- IFNULL():如果第一个参数为NULL,返回第二个参数
SELECT IFNULL(bonus, 0) AS bonus FROM salaries;-- NULLIF():如果两个参数相等,返回NULL
SELECT NULLIF(salary, 0) AS salary FROM employees; -- 工资为0时显示NULL

【4】,COALESCE() - 返回第一个非NULL值

-- 案例
select COALESCE(null,null,'a');   -- a

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询