MYSQL常用字符串函数和时间函数示例详解

 更新时间:2025年07月30日 10:30:44   作者:husterlichf  
字符串函数是最常用的的一种函数,在一个具体应用中通常会综合几个甚至几类函数来实现相应的应用,这篇文章主要介绍了MYSQL常用字符串函数和时间函数的相关资料,需要的朋友可以参考下

一、字符串函数

1、​CONCAT(str1, str2, …) 拼接多个字符串。

SELECT CONCAT('Hello', ' ', 'World');  -- 输出 'Hello World'

SELECT CONCAT(数字, '%');  -- 输出 百分数

2、SUBSTRING(str, start, length)​​ 或 ​SUBSTR() 截取字符串。

SELECT SUBSTRING('MySQL', 3, 2);  -- 输出 'SQ'

3、LENGTH(str)​​ 与 ​CHAR_LENGTH(str) 获取字符串的长度

LENGTH():返回字节数(受字符集影响);CHAR_LENGTH():返回字符数。

SELECT LENGTH('中国'), CHAR_LENGTH('中国'); -- 输出 6(UTF-8)和 2

4、UPPER(str) / LOWER(str) 转换大小写

SELECT UPPER('mysql');  -- 输出 'MYSQL'

5、REPLACE(str, old_str, new_str) 替换字符串

SELECT REPLACE('apple pie', 'apple', 'cherry');  -- 输出 'cherry pie'

6、TRIM([LEADING|TRAILING|BOTH] ‘char’ FROM str) 去除首尾指定字符(默认去空格)

SELECT TRIM('   MySQL   ');  -- 输出 'MySQL'  去除空格字符
  • TRIM() #删除前后空格
  • RTRIM() #删除字符串结尾空格
  • LTRIM() #删除字符串起始空格

BOTH删除指定的首尾字符

SELECT TRIM(BOTH 'a' FROM 'applea'); --结果pple

LEADING 删除指定的首字符

SELECT TRIM(LEADING 'a' FROM 'applea'); --结果pplea

TRAILING删除指定的尾字符

SELECT TRIM(TRAILING 'a' FROM 'applea'); --结果apple

二、时间函数

1、NOW() 返回当前日期和时间,格式 YYYY-MM-DD HH:MM:SS

SELECT NOW(); -- 2023-10-25 14:30:45

2、CURDATE() 返回当前日期,格式 YYYY-MM-DD

SELECT CURDATE(); -- 2023-10-25

3、CURTIME() 返回当前时间,格式 HH:MM:SS

SELECT CURTIME(); -- 14:30:45

4、DATE() 仅存储日期​(年-月-日),不包含时间。 YYYY-MM-DD(例如:2023-10-05)。

CREATE TABLE example (event_date DATE);
INSERT INTO example VALUES ('2023-10-05');

5、​TIME 仅存储时间​(时:分:秒),可以表示一天中的时间点或时间间隔。

格式 HH:MM:SS(例如:15:30:00)。支持微秒:HH:MM:SS[.fraction](例如:15:30:00.123456)

CREATE TABLE example (duration TIME);
INSERT INTO example VALUES ('15:30:00'), ('-05:00:00');

6、DATETIME() 存储日期 + 时间​(年-月-日 时:分:秒),转换之后的格式是字符串的格式

格式​:YYYY-MM-DD HH:MM:SS(例如:2023-10-05 15:30:00)。支持微秒:YYYY-MM-DD HH:MM:SS[.fraction]。

CREATE TABLE example (event_time DATETIME);
INSERT INTO example VALUES ('2023-10-05 15:30:00');

7、常用日期格式化符号

符号含义
%Y四位年份
%m两位月份 (01-12)
%M​完整英文名称​(January, February, …, December)。
%d两位日期 (01-31)
%D表示日期(月中的第几天)的 ​英文序数后缀格式​(1st, 2nd, 3rd, 4th, …, 30th, 31st)。
%H24小时制小时 (00-23)
%i:分钟 (00-59)
%s:秒 (00-59)
%W:星期全名 (Sunday-Saturday)
%a:缩写星期 (Sun-Sat)
%T24小时制时间(等价于 %H:%i:%s)
%r12小时制时间(等价于 %h:%i:%s %p)
%p上午/下午标记(AM/PM)

8、日期/时间格式化,将日期转换成字符串格式

  • DATE_FORMAT(date, format): 格式化日期,日期和时间部分
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 2023-10-25 14:30:45
SELECT DATE_FORMAT(NOW(), '%W, %M %e, %Y'); -- Wednesday, October 25, 2023
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H时%i分'); -- 2023年10月25日 14时30分
  • TIME_FORMAT(time, format): 格式化时间(仅时间)(用法同 DATE_FORMAT)
SELECT TIME_FORMAT('2023-10-01 08:30:00', '%T'); 
-- 输出: 08:30:00

9、STR_TO_DATE(str, format) 将字符串解析为日期

SELECT STR_TO_DATE('25,10,2023', '%d,%m,%Y'); -- 2023-10-25

10、日期计算

  • DATE_ADD(date, INTERVAL expr unit): 日期加法
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY); -- 当前时间加7天
SELECT DATE_ADD(NOW(), INTERVAL 3 MONTH); -- 当前时间加3个月
  • DATE_SUB(date, INTERVAL expr unit): 日期减法
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); -- 当前时间减1小时
  • DATEDIFF(date1, date2): 计算两个日期之间的天数差
SELECT DATEDIFF('2023-10-31', '2023-10-25'); -- 6

其中unit 可选值如下YEAR、MONTH、DAY、HOUR、MINUTE、SECOND,并且只能使用%Y-%m-%d格式,不能使用%Y-%M-%d格式

11、提取日期部分

  • YEAR(date): 提取年份

  • MONTH(date): 提取月份

  • DAY(date): 提取日期

  • HOUR(time): 提取小时

  • MINUTE(time): 提取分钟

  • SECOND(time): 提取秒

  • EXTRACT(unit FROM date)

SELECT EXTRACT(YEAR_MONTH FROM '2023-10-01'); -- 202310
mysql> SELECT EXTRACT(YEAR_MONTH FROM NOW());
+--------------------------------+
| EXTRACT(YEAR_MONTH FROM NOW()) |
+--------------------------------+
|                         202504 |
+--------------------------------+
1 row in set (0.01 sec)

mysql>

mysql> SELECT EXTRACT(YEAR_MONTH FROM NOW());
+--------------------------------+
| EXTRACT(YEAR_MONTH FROM NOW()) |
+--------------------------------+
|                         202504 |
+--------------------------------+
1 row in set (0.01 sec)

mysql>

总结 

到此这篇关于MYSQL常用字符串函数和时间函数的文章就介绍到这了,更多相关MYSQL字符串函数和时间函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL 聚合函数、分组查询、时间函数详解

    MySQL 聚合函数、分组查询、时间函数详解

    这篇文章主要介绍了MySQL 聚合函数、分组查询、时间函数 ,主要考验聚合函数count()求和以及分组查询,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • 关于Mysql update修改多个字段and的语法问题详析

    关于Mysql update修改多个字段and的语法问题详析

    这篇文章主要给大家介绍了关于mysql update修改多个字段and的语法问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • mysql5.7.17在win2008R2的64位系统安装与配置实例

    mysql5.7.17在win2008R2的64位系统安装与配置实例

    本篇文章主要给大家介绍了mysql5.7.17在win2008R2的64位系统安装与配置实例,以及在配置过程中遇到的问题解决办法。
    2017-11-11
  • MySQL中sleep函数的特殊现象示例详解

    MySQL中sleep函数的特殊现象示例详解

    这篇文章主要给大家介绍了关于MySQL中sleep函数特殊现象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • MySQL中触发器的基础学习教程

    MySQL中触发器的基础学习教程

    这篇文章主要介绍了MySQL中触发器的基础学习教程,包括对触发器的创建和管理等基本知识,着力推荐!需要的朋友可以参考下
    2015-12-12
  • Mysql中的单表最大记录是多少

    Mysql中的单表最大记录是多少

    这篇文章主要介绍了Mysql中的单表最大记录是多少问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    这篇文章主要介绍了Mysql数据库从5.6.28版本升到8.0.11版本过程中遇到的问题及解决方法,解决办法有三种,每种方法给大家介绍的都很详细,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • MySQL计算两个日期相差的天数、月数、年数

    MySQL计算两个日期相差的天数、月数、年数

    这篇文章主要介绍了MySQL计算两个日期相差的天数、月数、年数,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • MySQL快速复制数据库数据表的方法

    MySQL快速复制数据库数据表的方法

    有些时候,我们为了快速搭建一个测试环境,或者说是克隆一个网站,需要复制已经存在的mysql数据库。下面小编给大家介绍mysql快速复制数据库数据表的方法,小伙伴们跟着小编一起学习吧
    2015-10-10
  • 一文带你深入了解并掌握MySQL的DML和DCL

    一文带你深入了解并掌握MySQL的DML和DCL

    在数据库管理中,数据操作语言(DML)和数据控制语言(DCL)是至关重要的概念,DML使我们能够对数据库中的数据进行增加、修改和删除操作,本文将深入探讨这两个关键领域的核心概念和操作方法,帮助您更好地理解和应用数据库管理技术
    2024-02-02

最新评论