Mysql SQL 超实用的7个日期算术运算实例(10k)
文章目录
- 前言
- 1. 加上或减去若干天、若干月或若干年
- 基本语法
- 使用场景
- 注意事项
- 运用实例
- 分析说明
- 2. 确定两个日期相差多少天
- 基本语法
- 使用场景
- 注意事项
- 运用实例
- 分析说明
- 3. 确定两个日期之间有多少个工作日
- 基本语法
- 使用场景
- 注意事项
- 运用实例
- 分析说明
- 4. 确定两个日期相隔多少个月或多少年
- 基本语法
- 使用场景
- 注意事项
- 运用实例
- 分析说明
- 5. 确定两个日期相隔多少秒、多少分钟或多少小时
- 基本语法
- 使用场景
- 注意事项
- 运用实例
- 分析说明
- 6. 确定两个日期相隔多少秒、多少分钟或多少小时
- 基本语法
- 使用场景
- 注意事项
- 运用实例
- 分析说明
- 7. 确定当前记录和下一条记录存储的日期相隔多少天
- 基本语法
- 使用场景
- 注意事项
- 运用实例
- 分析说明
- 总结
前言
在MySQL中,可以使用各种函数来执行日期和时间的算术运算。以下是常用的日期算术运算函数:
- DATE_ADD() 和 DATE_SUB():在日期上加上或减去指定的时间间隔。
- TIMESTAMPDIFF():计算两个日期之间的差异,以指定的时间单位返回。
- DATEDIFF():计算两个日期之间的天数差异。
- DAYOFWEEK():确定一个日期是星期几,用于计算工作日。
- UNIX_TIMESTAMP():将日期转换为Unix时间戳,用于计算秒数差异。
1. 加上或减去若干天、若干月或若干年
基本语法
在MySQL中,可以使用DATE_ADD()和DATE_SUB()函数来对日期进行算术运算。
-
加上若干天、月或年:
DATE_ADD(date, INTERVAL value unit);date:原始日期。value:要加上的天数、月数或年数。unit:时间单位,可以是DAY、MONTH或YEAR。
-
减去若干天、月或年:
DATE_SUB(date, INTERVAL value unit);date:原始日期。value:要减去的天数、月数或年数。unit:时间单位,可以是DAY、MONTH或YEAR。
使用场景
- 日期调整:计算未来的日期或过去的日期,如计算项目的开始日期或结束日期。
- 年龄计算:根据出生日期计算年龄。
- 到期日计算:计算账单或订阅的到期日。
注意事项
- 闰年:在加上或减去年时,需要注意闰年的影响,特别是当涉及到2月份时。
- 月份天数:在加上或减去月时,如果目标月没有足够的天数,日期会调整到该月的最后一天。例如,从1月31日减去1个月会得到2月28日或29日。
- 负值:可以指定负值来减去天数、月数或年数。
运用实例
-
加上10天:
SELECT DATE_ADD('2023-01-01', INTERVAL 10 DAY);- 结果:
2023-01-11
- 结果:
-
减去2个月:
SELECT DATE_SUB('2023-03-15', INTERVAL 2 MONTH);- 结果:
2023-01-15
- 结果:
-
加上1年:
SELECT DATE_ADD('2023-01-01', INTERVAL 1 YEAR);- 结果:
2024-01-01
- 结果:
分析说明
- DATE_ADD() 和 DATE_SUB() 是非常强大的函数,它们允许你轻松地对日期进行加减运算。
- 当涉及到月份和年份的加减时,这些函数会自动处理不同月份的天数和闰年,使得日期计算变得简单。
- 在进行日期计算时,了解这些函数如何处理月份和年份的边界情况是非常重要的,这可以帮助你避免计算错误。
- 这些函数在处理业务逻辑,如日期有效性检查、年龄计算、日期范围查询等方面非常有用。
通过使用这些函数,你可以在MySQL中轻松地进行日期算术运算,以支持各种需要日期计算的业务需求。
2. 确定两个日期相差多少天
基本语法
在MySQL中,可以使用DATEDIFF()函数来确定两个日期之间相差的天数。
DATEDIFF(date1, date2);
date1:较晚的日期。date2:较早的日期。
使用场景
- 时间间隔计算:计算两个事件之间的时间间隔,如项目持续时间、年龄或两个订单之间的时间差。
- 历史数据分析:分析特定时间段内的数据变化,如用户活跃度或销售趋势。
- 日程规划:确定事件或预约之间的间隔,如会议或假期的安排。
注意事项
- 日期顺序:
DATEDIFF()函数要求第一个参数是较晚的日期,第二个参数是较早的日期。如果顺序颠倒,结果将是负数。 - 时区影响:确保两个日期都在同一时区,否则可能会影响计算结果。
- 日期格式:确保两个日期的格式正确,且能够被MySQL正确解析。
运用实例
假设我们想要计算从2023-01-01到2023-01-15之间相差的天数:
SELECT DATEDIFF('2023-01-15', '2023-01-01') AS days_difference;
- 结果:
14
分析说明
- 直观结果:
DATEDIFF()函数提供了一个直观的方式来获取两个日期之间的天数差异。 - 负值处理:如果你需要避免负值,可以使用
ABS()函数来获取绝对值:ABS(DATEDIFF(date1, date2))。 - 性能:
DATEDIFF()是一个轻量级的函数,通常对性能影响很小,适合在大型查询中使用。 - 业务逻辑:在业务逻辑中,这个函数可以用来计算用户注册后的活动天数、产品的生命周期、或者任何需要基于时间间隔的计算。
通过使用DATEDIFF()函数,你可以轻松地在MySQL中计算两个日期之间的天数差异,这对于许多需要日期间隔分析的场景非常有用。
3. 确定两个日期之间有多少个工作日
基本语法
在MySQL中,确定两个日期之间有多少个工作日通常需要自定义查询或存储过程,因为MySQL没有内置的函数直接计算工作日。以下是一种基本的方法:
SELECTSUM(CASEWHEN WEEKDAY(date) BETWEEN 1 AND 5 THEN 1ELSE 0END) AS workdays
FROM(SELECT DATE_ADD('起始日期', INTERVAL a.day - 1 相关文章:
Mysql SQL 超实用的7个日期算术运算实例(10k)
文章目录 前言1. 加上或减去若干天、若干月或若干年基本语法使用场景注意事项运用实例分析说明2. 确定两个日期相差多少天基本语法使用场景注意事项运用实例分析说明3. 确定两个日期之间有多少个工作日基本语法使用场景注意事项运用实例分析说明4. 确定两个日期相隔多少个月或多…...
运算指令(PLC)
加 ADD 减 SUB 乘 MUL 除 DIV 浮点运算 整数运算...
「Mac畅玩鸿蒙与硬件49」UI互动应用篇26 - 数字填色游戏
本篇教程将带你实现一个数字填色小游戏,通过简单的交互逻辑,学习如何使用鸿蒙开发组件创建趣味性强的应用。 关键词 UI互动应用数字填色动态交互逻辑判断游戏开发 一、功能说明 数字填色小游戏包含以下功能: 数字选择:用户点击…...
机器学习经典算法——逻辑回归
目录 算法介绍 算法概念 算法的优缺点 LogisticRegression()函数理解 环境准备 算法练习 算法介绍 算法概念 逻辑回归(Logistic Regression)是一种广泛应用于分类问题的机器学习算法。 它基于线性回归的思想,但通过引入一个逻辑函数&…...
【数据仓库金典面试题】—— 包含详细解答
大家好,我是摇光~,用大白话讲解所有你难懂的知识点 该篇面试题主要针对面试涉及到数据仓库的数据岗位。 以下都是经典的关于数据仓库的问题,希望对大家面试有用~ 1、什么是数据仓库?它与传统数据库有何区别? 数据仓库…...
【UE5 C++课程系列笔记】19——通过GConfig读写.ini文件
步骤 1. 新建一个Actor类,这里命名为“INIActor” 2. 新建一个配置文件“Test.ini” 添加一个自定义配置项 3. 接下来我们在“INIActor”类中获取并修改“CustomInt”的值。这里定义一个方法“GetINIVariable” 方法实现如下,其中第16行代码用于构建配…...
JS 中 json数据 与 base64、ArrayBuffer之间转换
JS 中 json数据 与 base64、ArrayBuffer之间转换 json 字符串进行 base64 编码 function jsonToBase64(json) {return Buffer.from(json).toString(base64); }base64 字符串转为 json 字符串 function base64ToJson(base64) {try {const binaryString atob(base64);const js…...
USB 驱动开发 --- Gadget 驱动框架梳理
编译链接 #----》 linux_5.10/drivers/usb/gadget/Makefileobj-$(CONFIG_USB_LIBCOMPOSITE) libcomposite.o libcomposite-y : usbstring.o config.o epautoconf.o libcomposite-y composite.o functions.o configfs.o u_f.oobj-$(CONFIG_USB_GADG…...
细说STM32F407单片机中断方式CAN通信
目录 一、工程配置 1、时钟、DEBUG、USART6、GPIO、CodeGenerator 2、CAN1 3、NVIC 二、软件设计 1、KEYLED 2、can.h 3、can.c (1)CAN1中断初始化 (2)RNG初始化和随机数产生 (3) 筛选器组设置…...
Python应用指南:高德交通态势数据
在现代城市的脉络中,交通流量如同流动的血液,交通流量的动态变化对出行规划和城市管理提出了更高的要求。为了应对这一挑战,高德地图推出了交通态势查询API,旨在为开发者提供一个强大的工具,用于实时获取指定区域或道路…...
医学图像分析工具01:FreeSurfer || Recon -all 全流程MRI皮质表面重建
FreeSurfer是什么 FreeSurfer 是一个功能强大的神经影像学分析软件包,广泛用于处理和可视化大脑的横断面和纵向研究数据。该软件由马萨诸塞州总医院的Martinos生物医学成像中心的计算神经影像实验室开发,旨在为神经科学研究人员提供一个高效、精确的数据…...
.NET框架用C#实现PDF转HTML
HTML作为一种开放标准的网页标记语言,具有跨平台、易于浏览和搜索引擎友好的特性,使得内容能够在多种设备上轻松访问并优化了在线分享与互动。通过将PDF文件转换为HTML格式,我们可以更方便地在浏览器中展示PDF文档内容,同时也更容…...
mamba-ssm安装
注意1:mamba-ssm要与casual-conv1d一起安装。 注意2:mamba-ssm与cuda、pytorch版本要对应。需要看你下载的代码的requirements.txt causal-conv1d与mamba的whl包官网下载: https://github.com/Dao-AILab/causal-conv1d/releases?page3 htt…...
网络IP协议
IP(Internet Protocol,网际协议)是TCP/IP协议族中重要的协议,主要负责将数据包发送给目标主机。IP相当于OSI(图1)的第三层网络层。网络层的主要作用是失陷终端节点之间的通信。这种终端节点之间的通信也叫点…...
双指针算法详解
目录 一、双指针 二、双指针题目 1.移动零 解法: 代码: 2.复写零 编辑 解法: 代码: 边界情况处理: 3.快乐数 编辑 解法:快慢指针 代码: 4.盛水最多的容器 解法:(对撞指针)…...
MySQL的最左匹配原则是什么
最左匹配原则是应用于联合索引的规则。 对于以下表F:f1,f2,f3;建立了联合索引(f2,f3),那么我们在查询的时候如果是: select * from F where f2 ? and f3 ?; 或 sele…...
LeetCode:106.从中序与后序遍历序列构造二叉树
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:106.从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder ,其中 inorder …...
22. 【.NET 8 实战--孢子记账--从单体到微服务】--记账模块--切换主币种
这篇文章我们将结合主币种设置以及收支记录实现切换主币种后重新计算以前记录的转换后的金额。那么,为什么要在切换主币种后要重新计算转换后的金额呢?有以下两个原因: 统一的币种,方便我们统计数据方便用户按照当地的币种查看收…...
01.02周四F34-Day43打卡
文章目录 1. 地是湿的。昨晚估计下雨了。2. 你可能把包丢在餐厅里了吧?3. 她说他可能误了航班。4. 我本来应该早点来的,但路上特别堵。5. 约翰可能在那次事故中受了重伤。6. 这是一个情景对话7. 我本可以走另一条路的。8. 我准是瘦了不少,你看我这裤子现在多肥。9. 钱没了!会…...
行业商机信息付费小程序系统开发方案
行业商机信息付费小程序系统,主要是整合优质行业资源,实时更新的商机信息。在当今信息爆炸的时代,精准、高效地获取行业商机信息对于企业和个人创业者而言至关重要。 一、使用场景 日常浏览:用户在工作间隙或闲暇时间,…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
