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

一、字符串函数

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

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

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)
%d两位日期 (01-31)
%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

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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python-Agent调用多个Server-FastAPI版本

Python-Agent调用多个Server-FastAPI版本 Agent调用多个McpServer进行工具调用 1-核心知识点 fastAPI的快速使用agent调用多个server 2-思路整理 1)先把每个子服务搭建起来2)再暴露一个Agent 3-参考网址 VSCode配置Python开发环境:https:/…

Drools+自定义规则库

文章目录 前言一、创建规则库二、SpringBootDrools程序1.Maven依赖2.application.yml3.Mapper.xml4.Drools配置类5.Service6.Contoller7.测试接口 前言 公司的技术方案想搭建Drools自定义规则库配合大模型进行数据的校验。本篇用来记录使用SpringBoot配合Drools开发Demo程序。…

潮了 低配电脑6G显存生成60秒AI视频 本地部署/一键包/云算力部署/批量生成

最近发现了一个让人眼前一亮的工具——FramePack,它能用一块普通的6GB显存笔记本GPU,生成60秒电影级的高清视频画面,效果堪称炸裂!那么我们就把他本地部署起来玩一玩、下载离线一键整合包,或者是用云算力快速上手。接下…

【蓝桥杯选拔赛真题104】Scratch回文数 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch回文数 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch回文数 第十五届青少年蓝桥杯scratch编…

大厂面试-框架篇

前言 本章内容来自B站黑马程序员java大厂面试题和小林coding 博主学习笔记,如果有不对的地方,海涵。 如果这篇文章对你有帮助,可以点点关注,点点赞,谢谢你! 1.Spring 1.1 Spring框架中的单例bean是线程…

【AI 加持下的 Python 编程实战 2_10】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(中)

文章目录 DIY 实战:从扫雷小游戏开发再探问题分解能力3 问题分解实战(自顶向下)3.2 页面渲染逻辑3.3 事件绑定逻辑 4 代码实现(自底向上)4.1 页面渲染部分4.2 事件绑定部分 写在前面 本篇将利用《Learn AI-assisted Py…

微信小程序开发1------微信小程序中的消息提示框总结

微信小程序中的消息提示框主要分为以下几种: 1. wx.showToast(Object object) 功能: 显示消息提示框,一般用于显示操作结果、状态等。 特点: 提示框显示在屏幕中间,持续一段时间后自动消失(默认1.5秒&…

AI 场景落地:API 接口服务 VS 本地部署,哪种更适合?

在当前 AI 技术迅猛发展的背景下,企业在实现 AI 场景落地时,面临着一个关键抉择:是选择各大厂商提供的 API 接口服务,还是进行本地化部署?这不仅关乎成本、性能和安全性,还涉及到技术架构、数据治理和长期战…

Android 加壳应用运行流程 与 生命周期类处理方案

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ DexClassLoader DexClassLoader 可以加载任意路径下的 dex,或者 jar、apk、zip 文件(包含classes.dex)。常用于插件化、热…

c++进阶——类与继承

文章目录 继承继承的基本概念继承的基本定义继承方式继承的一些注意事项 继承类模板 基类和派生类之间的转换继承中的作用域派生类的默认成员函数默认构造函数拷贝构造赋值重载析构函数默认成员函数总结 不能被继承的类继承和友元继承与静态成员多继承及其菱形继承问题继承模型…

GAEA情感坐标背后的技术原理

基于GAEA的去中心化物理基础设施网络(DePIN),用户有机会在GAEA平台上获得宝贵的数据共享积分。为了提升这些洞察的丰富性,用户必须花费一定数量的积分,将过去的网络数据与当前的情感数据绑定,从而产生一种新…

图形编辑器基于Paper.js教程27:对图像描摹的功能实现,以及参数调整

本篇文章来讲一下 图像描摹的功能的实现。 我们知道要雕刻图片可以通过分析图片的像素来生成相应的gcode进行雕刻,但如果你想要将图片转换为线稿进行雕刻,这个时候就要从图片中提取出 线稿。 例如下面的图片: 你想要获取到这个图片的线稿&…

人工智能与机器学习,谁是谁的子集 —— 再谈智能的边界与演进路径

人工智能(Artificial Intelligence, AI)作为当代最具影响力的前沿技术之一,常被大众简化为 “深度学习” 或 “大模型” 等标签。然而,这种简化认知往往掩盖了AI技术内部结构的复杂性与多样性。事实上,AI并非单一方法的…

Oracle_开启归档日志和重做日志

在Oracle中,类似于MySQL的binlog的机制是归档日志(Archive Log)和重做日志(Redo Log) 查询归档日志状态 SELECT log_mode FROM v$database; – 输出示例: – LOG_MODE – ARCHIVELOG (表示已开启) – NO…

IDEA编写flinkSQL(快速体验版本,--无需配置环境)

相关资料 文档内容链接地址datagen生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/datagen/print 生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/print/ 准备工作 优点就是下载个ide…

基于AI技术的高速公路交通引流系统设计与应用研究

基于AI技术的高速公路交通引流系统设计与应用研究 1. 研究背景与意义 1.1 交通系统演化脉络 1.1.1 发展阶段划分 机械化时代(1950-1990):固定式信号控制信息化时代(1991-2010):SCATS/SCOOT系统智能化时代…

NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS

1. 介绍: 这篇论文也是基于CLIP通过后处理的方法实现的OOD的检测,但是设计点在于,之前的方法是使用的ID的类别,这篇工作是通过添加一些在语义上非常不同于ID的类别的外分布类来做的OOD检测。 CLIP做OOD检测的这个系列里面我看的以及记录的第一篇就是MCM的方法,这也是确实是…

Linux 网络基础三 (数据链路层协议:以太网协议、ARP 协议)

一、以太网 两个不同局域网的主机传递数据并不是直接传递的,而是通过路由器 “一跳一跳” 的传递过去。 跨网络传输的本质:由无数个局域网(子网)转发的结果。 所以,要理解数据跨网络转发原理就要先理解一个局域网中数…

Azure Data Factory ETL设计与调度最佳实践

一、引言 在Azure Data Factory (ADF) 中,调度和设计ETL(抽取、转换、加载)过程需要综合考量多方面因素,以确保数据处理高效、可扩展、可靠且易于维护。以下将详细介绍相关关键考虑因素、最佳实践,并辅以具体示例说明…

非序列实现MEMS聚焦功能

zemax非序列模式下有MEMS,但是没有对应的代码。无法修改成自己需要的功能 以下是实现MEMS聚焦功能: #include <windows.h> #include <cmath> #include <stdio.h> #include <string.h> #include <algorithm> #undef max #undef min#define D…