SQL 常用数据格式化操作方法总结

SQL 常用数据格式化操作方法总结

数据格式化是把日期、数字、字符串 转换成易读、统一格式的核心操作,几乎所有查询都会用到。包含字符串、数字、日期、空值处理、类型转换五大类。


一、字符串格式化(文本处理)

用于清洗、拼接、截取、替换字符串

函数 作用 示例
UPPER() 转大写 UPPER(name)ZHANG
LOWER() 转小写 LOWER(name)zhang
CONCAT() 拼接字符串 CONCAT(姓, ' ', 名)
SUBSTRING() 截取字符 SUBSTRING(phone,1,3) 取前3位
TRIM() 去除首尾空格 TRIM(address)
REPLACE() 替换内容 REPLACE(info,'旧','新')
LEFT()/RIGHT() 左/右截取 LEFT(phone,3)

二、数字格式化(保留小数、补零、取整)

用于金额、百分比、数值显示规范

函数 作用 示例
ROUND() 四舍五入 ROUND(price,2) 保留2位小数
TRUNCATE() 截断不四舍五入 TRUNCATE(3.1415,2)3.14
FORMAT() 千分位+小数 FORMAT(money,2)1,234.56
CEIL()/FLOOR() 向上/向下取整 CEIL(3.1)4
LPAD() 左侧补零/字符 LPAD(id,3,'0')005

三、日期时间格式化(高频重点)

最常用、最容易忘,不同数据库写法略有区别,我给你通用 + 主流数据库版本。

1. 通用标准格式

sql 复制代码
-- 获取 年-月-日
DATE_FORMAT(时间, '%Y-%m-%d')

-- 获取 年-月-日 时:分:秒
DATE_FORMAT(时间, '%Y-%m-%d %H:%i:%s')

2. 主流数据库日期格式化

  • MySQLDATE_FORMAT(时间, '%Y-%m-%d')
  • SQL ServerCONVERT(varchar, 时间, 23)
  • OracleTO_CHAR(时间, 'YYYY-MM-DD')

常用格式符(MySQL)

符号 含义
%Y 4位年(2025)
%m 2位月(01-12)
%d 2位日
%H 24小时制
%i 分钟
%s

日期提取

sql 复制代码
YEAR(create_time)    -- 提取年
MONTH(create_time)   -- 提取月
DAY(create_time)     -- 提取日
HOUR(create_time)    -- 提取小时

四、空值格式化(把 NULL 变成默认值)

查询时把空值显示为 0未知,避免报表显示 NULL 很难看

函数 作用
IFNULL(字段, 默认值) MySQL 空值替换
COALESCE(字段, 默认值) 通用标准(所有数据库都能用)

示例:

sql 复制代码
-- 没有金额就显示 0
COALESCE(money, 0)

-- 没有备注就显示"无"
COALESCE(remark, '无')

五、数据类型转换(强制转格式)

把字符串转数字、日期转字符串、数字转字符串等

函数 作用
CAST(值 AS 类型) 通用类型转换
CONVERT() 转换(SQL Server/MySQL)

示例:

sql 复制代码
CAST(score AS CHAR)   -- 数字转字符串
CAST('123' AS INT)    -- 字符串转数字

高频实用格式化模板(直接用)

  1. 金额显示:保留2位小数

    sql 复制代码
    ROUND(price, 2)
  2. 手机号隐藏中间4位

    sql 复制代码
    CONCAT(LEFT(phone,3), '****', RIGHT(phone,4))
  3. 日期只显示 年-月-日

    sql 复制代码
    DATE_FORMAT(create_time, '%Y-%m-%d')
  4. 空值显示为 0

    sql 复制代码
    COALESCE(score, 0)
  5. 数字补零成固定长度

    sql 复制代码
    LPAD(id, 4, '0')  → 0012

总结

  1. 字符串 :用 UPPER/LOWER/CONCAT/SUBSTRING/REPLACE 清洗文本
  2. 数字 :用 ROUND/FORMAT/LPAD 控制小数、千分位、补零
  3. 日期 :用 DATE_FORMAT年-月-日,是最常用格式化
  4. 空值 :用 COALESCE 把 NULL 变成默认值
  5. 类型转换 :用 CAST 强制转换数据格式
相关推荐
梁辰兴16 分钟前
软件工程:数据结构设计
数据库·软件工程·设计原则·设计方法·梁辰兴·数据库结构设计·数据库结构类型
AC赳赳老秦36 分钟前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
灯澜忆梦1 小时前
【MySQL18】进阶篇 | MySQL管理
数据库·mysql
zcmodeltech2 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
AI多Agent协作实战派2 小时前
AI多Agent协作系统实战(四十):AI说“没有错误“,系统判了“测试失败“——一个正则的误判
数据库·人工智能
隔窗听雨眠3 小时前
OceanBase接入DeepSeek:数据库与AI的深度融合如何改写企业数据规则
数据库·人工智能·oceanbase
playboy1343 小时前
工作室 NAS 存储故障-办公室所有数据无法访问怎么办
数据库
byxdaz4 小时前
jeston平台交叉编译Poppler库与预览pdf文件
数据库
SilicoCode4 小时前
江科大STM32入门:FLASH闪存详解——从结构原理到读写保护
数据库·mongodb
一个有温度的技术博主5 小时前
DeepSeek Harness 深度解析:与 LangChain / LangGraph 的本质区别
数据库·oracle·langchain·harness