常用字符串函数与日期函数

引言 MySQL提供了丰富的内置函数来处理字符串和日期。掌握这些函数能大幅提升开发效率。 一、字符串函数 1.1 CONCAT() / CONCAT_WS() - 拼接 -- CONCAT:拼接字符串 SELECT CONCAT('Hello', ' ', 'World'); -- Hello World -- CONCAT_WS:指定分隔符拼接 SELECT CONCAT_WS('-', '2024', '11', '21'); -- 2024-11-21 -- 实战:拼接姓名 SELECT CONCAT(last_name, first_name) AS full_name FROM users; -- 处理NULL SELECT CONCAT('Hello', NULL); -- NULL SELECT CONCAT_WS(',', 'A', NULL, 'C'); -- A,C(忽略NULL) 1.2 SUBSTRING() / SUBSTR() - 截取 -- SUBSTRING(str, pos, len) SELECT SUBSTRING('Hello World', 1, 5); -- Hello(从位置1开始,长度5) SELECT SUBSTRING('Hello World', 7); -- World(从位置7到结尾) SELECT SUBSTRING('Hello World', -5); -- World(从右边第5个) -- 实战:提取手机号后4位 SELECT SUBSTRING(phone, -4) FROM users; 1.3 LENGTH() / CHAR_LENGTH() - 长度 -- LENGTH:字节长度 SELECT LENGTH('Hello'); -- 5 SELECT LENGTH('你好'); -- 6(UTF-8,每个汉字3字节) -- CHAR_LENGTH:字符长度 SELECT CHAR_LENGTH('Hello'); -- 5 SELECT CHAR_LENGTH('你好'); -- 2 -- 实战:过滤长度 SELECT * FROM products WHERE CHAR_LENGTH(name) > 10; 1.4 UPPER() / LOWER() - 大小写 SELECT UPPER('hello'); -- HELLO SELECT LOWER('WORLD'); -- world -- 实战:不区分大小写查询 SELECT * FROM users WHERE LOWER(email) = 'user@example.com'; 1.5 TRIM() / LTRIM() / RTRIM() - 去空格 SELECT TRIM(' Hello '); -- 'Hello' SELECT LTRIM(' Hello '); -- 'Hello ' SELECT RTRIM(' Hello '); -- ' Hello' SELECT TRIM('x' FROM 'xxxHelloxxx'); -- 'Hello' 1.6 REPLACE() - 替换 SELECT REPLACE('Hello World', 'World', 'MySQL'); -- Hello MySQL -- 实战:隐藏手机号中间4位 SELECT CONCAT( SUBSTRING(phone, 1, 3), '****', SUBSTRING(phone, -4) ) AS masked_phone FROM users; 1.7 INSTR() / LOCATE() - 查找位置 SELECT INSTR('Hello World', 'World'); -- 7 SELECT LOCATE('o', 'Hello World'); -- 5 SELECT LOCATE('o', 'Hello World', 6); -- 8(从第6个位置开始找) 1.8 LEFT() / RIGHT() - 左右截取 SELECT LEFT('Hello World', 5); -- Hello SELECT RIGHT('Hello World', 5); -- World 二、日期时间函数 2.1 NOW() / CURDATE() / CURTIME() SELECT NOW(); -- 2024-11-21 19:00:00(当前日期时间) SELECT CURDATE(); -- 2024-11-21(当前日期) SELECT CURTIME(); -- 19:00:00(当前时间) SELECT SYSDATE(); -- 2024-11-21 19:00:00(系统时间) 2.2 DATE_FORMAT() - 格式化 -- DATE_FORMAT(date, format) SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 2024-11-21 SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日'); -- 2024年11月21日 SELECT DATE_FORMAT(NOW(), '%H:%i:%s'); -- 19:00:00 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 2024-11-21 19:00:00 SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y'); -- Thursday, November 21, 2024 常用格式符: ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...