SQL 入门 10:SQL 内置函数:数值、字符串与时间处理

张开发
2026/4/21 12:54:43 15 分钟阅读

分享文章

SQL 入门 10:SQL 内置函数:数值、字符串与时间处理
以下为 SQL 中内置函数的用法解析涵盖数值、字符串和时间函数。学习内容数值函数ROUND(number, decimals)四舍五入指定小数位。TRUNCATE(number, decimals)截断至指定小数位不四舍五入。CEILING(number) / CEIL(number)向上取整。FLOOR(number)向下取整。ABS(number)绝对值。RAND()生成 0 到 1 的随机浮点数。常见的数值函数字符串函数LENGTH(str)返回字符串长度。UPPER(str) / LOWER(str)转换大小写。LTRIM(str) / RTRIM(str) / TRIM(str)去除左侧、右侧或两侧空格。LEFT(str, n) / RIGHT(str, n)取左或右 n 个字符(含空格)。SUBSTRING(str, start, length)截取字符串length 可选。LOCATE(substr, str)返回子串首次出现位置(从 1 计数)。REPLACE(str, from_str, to_str)替换所有 from_str 为 to_str。CONCAT(str1, str2, ...)连接字符串。CONCAT_WS(separator, str1, str2, ...)用分隔符连接跳过 NULL。常见的字符串函数时间函数常见的unitNOW()当前日期时间。CURDATE()当前日期。CURTIME()当前时间。YEAR(date) / MONTH(date) / DAY(date) / HOUR(time) / MINUTE(time) / SECOND(time)提取对应部分。DAYNAME(date)星期名称。DAYOFMONTH(date)月内第几天。DAYOFWEEK(date)周内第几天(西方周日为 1东方规则不同)。DAYOFYEAR(date)年内第几天。EXTRACT(unit FROM date)提取指定部分(如 DAY、YEAR)常见的unit示例代码与讲解1. 数值函数SELECT ROUND(4.78);四舍五入到 5。SELECT ROUND(4.987, 2);四舍五入到 4.99。SELECT TRUNCATE(4.87235, 3);截断到 4.872。SELECT CEILING(46.7);向上取整到 47。SELECT FLOOR(46.7);向下取整到 46。SELECT ABS(-92.3);返回 92.3。SELECT RAND();生成 0 到 1 的随机数。2. 字符串函数SELECT LENGTH(STEPHEN);返回 7。SELECT UPPER(shaun);转换为 SHAUN。SELECT LOWER(LIVINGSTON);转换为 livingston。SELECT LTRIM( KLAY);去除左侧空格返回 KLAY。SELECT RTRIM(Green );去除右侧空格返回 Green。SELECT TRIM( ANDER IGUODALA );去除两侧空格返回 ANDER IGUODALA。SELECT LEFT( DANTE, 3);取左 3 字符返回 DA。SELECT RIGHT( DANTE, 3);取右 3 字符返回 NTE。SELECT SUBSTRING(JONATHON, 2, 5);从第 2 位截取 5 字符返回 ONATH。SELECT LOCATE(S, MOSES);返回 S 在 MOSES 中首次位置 3。SELECT REPLACE(ABCDFEG, FE, EF);返回 ABCDEFG。SELECT CONCAT(first_name, last_name)FROM customers;连接名字无空格如 JohnSmith。SELECT CONCAT_WS( , first_name, last_name)FROM customers;用空格连接返回 John Smith。SELECT CONCAT(first_name, , last_name)FROM customers;同上灵活性较低。3. 时间函数SELECT NOW(), CURDATE(), CURTIME();示例输出2025-04-11 15:02:23, 2025-04-11, 15:02:23。SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW()), HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());提取当前时间部分如 2025, 4, 11, 15, 2, 23。SELECT DAYNAME(NOW()), DAYOFMONTH(NOW()), DAYOFWEEK(NOW()), DAYOFYEAR(NOW());返回星期名、月内天、周内天(西方周日为 1)、年内天。注意DAYOFWEEK 西方规则与东方不同。SELECT EXTRACT(DAY FROM NOW());提取当前日期的天如 11。作业1. 时间函数SELECT *FROM ordersWHERE EXTRACT(YEAR FROM order_date) YEAR(NOW());筛选当前年份(2025)的订单。总结本次解析了数值函数(ROUND、TRUNCATE 等)、字符串函数(CONCAT_WS、TRIM 等)和时间函数(NOW、EXTRACT 等)。基于 sql_store 数据库。后续将探讨条件逻辑与格式化。

更多文章