Mysql 常用日期处理函数

news2024/9/23 17:21:28

Mysql 常用日期处理函数

1 建表语句

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for emp
-- ----------------------------
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp`  (
  `EMPNO` int(4) NOT NULL,
  `ENAME` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `JOB` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `MGR` int(4) NULL DEFAULT NULL,
  `HIREDATE` date NULL DEFAULT NULL,
  `SAL` double(7, 2) NULL DEFAULT NULL,
  `COMM` double(7, 2) NULL DEFAULT NULL,
  `DEPTNO` int(2) NULL DEFAULT NULL,
  PRIMARY KEY (`EMPNO`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of emp
-- ----------------------------
INSERT INTO `emp` VALUES (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800.00, NULL, 20);
INSERT INTO `emp` VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600.00, 300.00, 30);
INSERT INTO `emp` VALUES (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250.00, 500.00, 30);
INSERT INTO `emp` VALUES (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975.00, NULL, 20);
INSERT INTO `emp` VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250.00, 1400.00, 30);
INSERT INTO `emp` VALUES (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850.00, NULL, 30);
INSERT INTO `emp` VALUES (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450.00, NULL, 10);
INSERT INTO `emp` VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000.00, NULL, 20);
INSERT INTO `emp` VALUES (7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000.00, NULL, 10);
INSERT INTO `emp` VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500.00, 0.00, 30);
INSERT INTO `emp` VALUES (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100.00, NULL, 20);
INSERT INTO `emp` VALUES (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950.00, NULL, 30);
INSERT INTO `emp` VALUES (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000.00, NULL, 20);
INSERT INTO `emp` VALUES (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300.00, NULL, 10);

SET FOREIGN_KEY_CHECKS = 1;

2.计算两个日期之间的天数

2.1 语法

-- 计算d1-d2之间间隔的天数,d1,d2也可以是字符串
DATEDIFF(d1,d2) 

2.2 示例sql语句

-- 日期处理函数  DATEDIFF(d1,d2) 计算d1-d2之间间隔的天数
SELECT DATEDIFF('2022-02-02','2022-02-05')
FROM dual

2.3 运行截图

在这里插入图片描述

3 以不同的格式显示日期/时间数据

3.1 语法

/*以f的格式显示d对应的日期
其中f中最为常见的格式如下
%Y 四位数的年  
%m 月份(1,2,3...) 
%d 天数(1,2.3...31)
%H 24小时制
%i  分钟,数字形式 (00..59)
%s 秒
%M 月份(March这种的)
*/
DATE_FORMAT(d,f)

3.2 示例sql语句

-- 查出员工姓名、入职日期(只查你年月,像2020-02这种形式)
SELECT ename,date_format(hiredate,'%Y-%m')
FROM emp

3.3 运行截图

在这里插入图片描述

4 从日期中变更指定的时间间隔

4.1 语法

/*
一般是用于求多少天之内,
expr是时间间隔(整数),expr为正数时日期往后移(过去),expr为负数时日期往前移动(未来)
type是日期类型,可以是year(年)、month(月)、day(日)
sub是subtract的缩写 表示减去
*/
DATE_SUB(date,INTERVAL expr type)

4.2 示例sql语句

4.2.1 当为expr为正数,返回过去日期

SELECT date_sub(hiredate,interval 2 day) day,hiredate
FROM emp

4.2.2 当为expr为负数,返回未来日期

SELECT date_sub(hiredate,interval -2 day) day,hiredate
FROM emp

4.3 运行截图

4.3.1 当为expr为正数

在这里插入图片描述

4.3.2 当为expr为负数时

在这里插入图片描述

5 返回当前日期和时间

5.1 语法

NOW()

5.2 示例sql语句

-- dual只是临时表罢了
SELECT NOW()
FROM dual;

5.3 运行截图

在这里插入图片描述

6 计算起始日期 d 变更n天后的日期

6.1 语法

--n可以是interval 2 day这种,和date_sub的用法一致
ADDDATE(d,n)

6.2 示例sql语句

-- 查找出所有员工的日志日期早二天的日期
SELECT hiredate,ADDDATE(hiredate,interval 2 day)
FROM emp

6.3 运行截图

在这里插入图片描述

7 返回指定日期那一月份的最后一天

7.1 语法

-- 返回给给定日期的那一月份的最后一天
LAST_DAY(d)

7.2 示例sql语句

-- 查找员工入职日期月份的最后一天
SELECT hiredate,LAST_DAY(hiredate) last
FROM emp;

7.3 运行截图

在这里插入图片描述

8 返回日期是第几季度

8.1 语法

-- 返回日期d是第几季节 取值范围为[1,4]
QUARTER(d)

8.2 示例sql语句

-- 查找员工入职月份是在第几季度
SELECT hiredate,QUARTER(hiredate) '季度'
FROM emp;

8.3 运行截图

在这里插入图片描述

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

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

相关文章

网络编程Socket套接字,UDP和TCP的服务器客户端程序实现

目录 一. 何为网络编程 二. Socket套接字 1. 简单认识 UDP 和 TCP 2. 基于 UDP 实现简单的客户端服务器的网络通信程序 1. 方法使用 2. 回显服务器的实现 3. 回显客户端的实现 3. 基于 UDP 实现简单的客户端服务器的网络通信程序 1. 方法使用 2. 回显服务器的实现 …

NSGA-Ⅲ源代码

NSGA-Ⅲ源代码如下,供大家学习和应用。该算法在梯级水电-火电的应用订阅专栏即可查看: 1、主函数 % % Copyright (c) 2016, Mostapha Kalami Heris & Yarpiz (www.yarpiz.com) % All rights reserved. Please read the "LICENSE" file…

【项目实战】从0开始入门JDK源码 - LinkedList源码 - 实现双端队列、队列、栈分析

一、类图分析 从 LinkedList的类图可以知道,LinkedList实现了 Deque双端队列接口 1.1 LinkedList拥有队列、双端队列的特性 Deque接口继承于 Queue接口,所以 LinkedList拥有队列、双端队列的特性; 1.2 LinkedList同时也拥有栈的特性 其次,JAVA中,有一个过时类 Stac…

电子科技大学软件工程期末复习笔记(六):软件测试

目录 前言 重点一览 软件测试 基本原则 目标 测试用例 软件缺陷 调试与测试 测试与质量保证 软件测试的评估准则 黑盒测试 定义 等价类划分 边界值分析 状态测试 白盒测试 定义 逻辑覆盖测试 控制流图覆盖测试 基本路径测试 灰盒测试 静态测试 含义 范…

产品分析|虎扑APP

不同于传统的体育新闻门户网站,虎扑以篮球社区起家,在经历了从体育论坛到体育新闻网站的发展后,又逐渐回归社区发展。 目前,虎扑汇聚了大量的男性用户,俨然成为了“互联网直男的自留地”。特立独行的发展方向使得虎扑不断发展壮大,同时也使得虎扑逐渐触碰到了行业天花板。…

大数据算法自检

1 大数据亚线性空间算法 1.1 流模型的计数问题 问题定义?用什么算法?算法步骤?(提示:三层递进) 切比雪夫不等式?怎么证明?期望,方差,空间复杂度? 极其有限的空间存储极…

【音视频开发】 ffmpeg解码API

1.版本迭代ffmpeg解码API经过了好几个版本的迭代,上一个版本的API是解码视频:avcodec_decode_video2解码音频:avcodec_decode_audio4我们现在能看到的很多解码例子用的都是这两个,不过现在ffmpeg更推荐用新一代的API向解码器输送数…

04 中间件-提高框架的可拓展性

到目前为止我们已经完成了 Web 框架的基础部分,使用 net/http 启动了一个 Web 服务,并且定义了自己的 Context,可以控制请求超时。 在前面的controller.go中有一个超时控制逻辑: func FooControllerHandler(c *framework.Context…

【Ap AutoSAR入门与实战开发04】:服务的需求定义以及如何在arxml中定义服务

总目录链接==>> AutoSAR入门和实战系列总目录 文章目录 1 服务的需求定义2 服务的arxml定义2.1 事件中的数据类型定义我们在「【Ap AutoSAR入门与实战开发03】-【Ap_s2s模块02】:到底什么是基于信号,什么是基于服务,两者的主要区别是什么?」的文章中讲到了讲到了服…

如何在ONLYOFFICE v7.3中使用 WRAPROWS、WRAPCOLS公式

在ONLYOFFICE7.3版本更新以来,每次给大家都分享几种函数公式的运用方式,今天在给大家分享两种,分别是;WRAPROWS、WRAPCOLS。 ONLYOFFICE ONLYOFFICE文档是一款免费开源在线办公软件,可以打开阅读并编辑文档、表格和幻…

1247. 交换字符使得字符串相同

1247. 交换字符使得字符串相同 难度中等162收藏分享切换为英文接收动态反馈 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候&am…

轻松入门H3C无线AC上线AP【入门篇】

我们知道华三的最新模拟器支持了无线AC的配置,今天就浅浅的出个无线AC的教程,你上也会的那种。今天我们模拟的是二层环境下,笔者准备了2个AP,以此展示AP上线到AC的教程,并且用手机测试WiFi连接正常,且客户端…

7、nodejs安装

前言:工具下载地址阿里云盘:nodejs:https://www.aliyundrive.com/s/hLAKBgjNUqr提取码: p9q9一、介绍Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件…

【VUE】二 vue指令

目录 一、插值表达式 二、v-bind指令(对标签中的属性进行操作) 三、v-model指令(input、select、textarea等。【双向绑定】) 四、v-for循环指令 五、v-on(事件指令) 六、v-if条件判断 七、v-show(条件显示或隐藏) 八、案例…

模型解释性:PFI、PDP、ICE等包的用法

本篇主要介绍几种其他较常用的模型解释性方法。 1. Permutation Feature Importance(PFI) 1.1 算法原理 置换特征重要性(Permutation Feature Importance)的概念很简单,其衡量特征重要性的方法如下:计算特征改变后模型预测误差的增加。如果打乱该特征的…

HCIP-5距离矢量路由协议RIP学习笔记

前言 路由信息协议RIP(Routing Information Protocol)的简称,它是一种基于距离矢量(Distance-Vector)算法的协议,使用跳数作为度量来衡量到达目的网络的距离。RIP主要应用于规模较小的网络中。Rip是第一个动…

如何创建“杀手级”SaaS 产品文档?

SaaS 产品的文档至关重要,尽管在 SaaS 初创公司的旋风中,它可能在您的列表中并不重要。它不仅仅是为客户支持节省成本。您可能已经在发布一些文档时做了一些尝试,但现在是时候将您的文档提升到一个新的水平了。由于 SaaS 公司采用订阅模式运营…

【Git】Git使用(保姆级讲解)

1、第一次安装使用 git下载地址:https://git-scm.com/download 1.1 配置用户名、邮箱 ​ 这是非常重要的,因为每次Git提交都会使用该用户信息。 设置 ​ 在 git bash 输入以下命令。 git config --global user.name "" git config --glo…

CV学习笔记-ResNet

ResNet 文章目录ResNet1. ResNet概述1.1 常见卷积神经网络1.2 ResNet提出背景2. ResNet网络结构2.1 Residual net2.2 残差神经单元2.3 Shortcut2.4 ResNet50网络结构3. 代码实现3.1 Identity Block3.2 Conv Block3.3 ResNet网络定义3.4 整体代码测试1. ResNet概述 1.1 常见卷积…

【三维几何学习】MeshCNN: A Network with an Edge

MeshCNN引言一、方法简述1.1 输入1.2 卷积1.3 池化二、实验分析三、改进以及应用引言 MeshCNN是第一个将网格简化引入到池化操作中的网络:合并顶点降低网格分辨率,类似图像中的平均池化。 主页1:https://ranahanocka.github.io/MeshCNN/ 比较详细的讲解…