惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
博客园_首页
罗磊的独立博客
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
Last Week in AI
Last Week in AI
D
DataBreaches.Net
Jina AI
Jina AI
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
D
Docker
MongoDB | Blog
MongoDB | Blog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
H
Help Net Security
T
The Blog of Author Tim Ferriss

博客园 - lzhdim

25个每个开发人员都应该掌握的JavaScript 数组方法 20260831 - 个人小作品更新 C#使用SQLite数据库例子 - 开源研究系列文章 20260830 - 个人小作品更新 20260829 - 个人小作品更新 13、JavaScript事件循环机制 - JavaScript学习系列文章 首款媲美分体水冷的一体水冷!微星CORELIQUID E15 360水冷散热器评测:目前为止 锐龙9 9950X3D最强性能释放 JavaScript常见的内存泄露问题 - JavaScript学习系列文章 C#开发的颜色取色器 - 开源研究系列文章 - 个人小作品 成长环境 - 我的闪存 提高 SQL 语句执行速度的方法 JavaScript安全最佳实践 关闭iPhone一些默认设置,让iPhone更流畅 20260814 - 个人小作品更新 JavaScript对象与元编程 20260812 - 个人小作品更新 JavaScript 模块化系统 Markdown 语法完全指南 C# 通过 Windows API 实现进程内存读写操作 JavaScript 函数进阶课题 C#开发的基于钩子技术监测键鼠事件的例子 - 开源项目研究文章 JavaScript异步编程的演进 近十年最帅风冷!酷冷至尊V8 ACE 3DHP散热器评测:单塔能干翻双塔 20260723 - 个人小作品更新 C# 中读取CPU、硬盘和内存温度 雷柏VT3s MAX鼠标评测:中小手型用户也没有被遗忘 顶尖性能的小号电竞鼠标来了 JavaScript 中的原型与继承 1分钟查清局域网所有IP 20260714 - 个人小作品更新 WorkBuddy 完整教程手册
SQL 入门 10:SQL 内置函数:数值、字符串与时间处理
lzhdim · 2026-04-13 · via 博客园 - lzhdim

Posted on 2026-04-13 00:00  lzhdim  阅读(8880)  评论()    收藏  举报

以下为 SQL 中内置函数的用法解析,涵盖数值、字符串和时间函数。

学习内容

  1. 数值函数
    • ROUND(number, decimals):四舍五入,指定小数位。
    • TRUNCATE(number, decimals):截断至指定小数位,不四舍五入。
    • CEILING(number) / CEIL(number):向上取整。
    • FLOOR(number):向下取整。
    • ABS(number):绝对值。
    • RAND():生成 0 到 <1 的随机浮点数。

常见的数值函数

  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。

常见的字符串函数

  1. 时间函数

常见的unit

    • NOW():当前日期时间。
    • 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. 数值函数

  • 四舍五入到 5。
  • 四舍五入到 4.99。

SELECT TRUNCATE(4.87235, 3);

  • 截断到 4.872。
  • 向上取整到 47。
  • 向下取整到 46。
  • 返回 92.3。
  • 生成 0 到 <1 的随机数。

2. 字符串函数

SELECT LENGTH('STEPHEN');

  • 返回 7。
  • 转换为 'SHAUN'。

SELECT LOWER('LIVINGSTON');

  • 转换为 'livingston'。
  • 去除左侧空格,返回 '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 orders
WHERE EXTRACT(YEAR FROM order_date) = YEAR(NOW());

  • 筛选当前年份(2025)的订单。

总结

本次解析了数值函数(ROUND、TRUNCATE 等)、字符串函数(CONCAT_WS、TRIM 等)和时间函数(NOW、EXTRACT 等)。基于 sql_store 数据库。后续将探讨条件逻辑与格式化。