MYSQL中日期加减(前一天、后一天等)以及格式化的函数

2023-12-02 10:38

本文主要是介绍MYSQL中日期加减(前一天、后一天等)以及格式化的函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 序言
      • 日期的加减
        • date_add和date_sub
      • 日期的格式化
        • date_format
      • 日期的差值
        • datediff
        • timestampdiff

序言

最近在写定时任务,查询条件中反复的会使用时间区间作为筛选条件,难免的会碰到对日期的操作,如获取前一天、后一天、一周前、一个月前等,索性整理一下MYSQL中的相关函数

日期的加减

date_add和date_sub

语法为:date_add(date,interval expr type)、date_sub(date,interval expr type)
其中常用的type的类型有:second、minute、hour、day、month、year等

date_add是对日期的增加,如果天数为负数时,则表示对日期减少,
date_sub是对日期的减少,如果天数为负数时,则表示对日期增加
例如:

-- 获取日期 2020-04-07
curdate()
-- 获取日期加时间 2020-04-07 23:10:30
now()
-- 获取明天的日期 2020-04-08
date_add(curdate(),interval 1 day)
--或者
date_sub(curdate(),interval -1 day)
-- 获取明年的日期 2021-04-07
date_add(curdate(),interval 1 year)
-- 或者
date_sub(curdate(),interval -1 year)

日期的格式化

date_format

语法为:date_format(date,format),date 参数是合法的日期。format 规定日期/时间的输出格式。
常用的格式有:

格式描述
%Y年,4 位
%y年,2 位
%m月,数值(00-12)
%M月名
%D带有英文前缀的月中的天
%d月的天,数值(00-31)
%H小时 (00-23)
%h小时 (01-12)
%i分钟,数值(00-59)
%S秒(00-59)
%s秒(00-59)
-- 格式化当前日期 2020-04-07 23:23:23
date_format(now(),'%Y-%m-%d %H:%i:%s' )

日期的差值

datediff

DATEDIFF(date1,date2) 返回起始时间 date1 和结束时间 date2 之间的天数(date2-date1,正负情况都存在)。date1 和 date2 为日期或 date-and-time 表达式,计算差值时只会计算日期的差值,单位为天。

-- 当前时间2020-04-08,差值为-2
SELECT DATEDIFF(NOW(),'2020-04-10') 
-- 当前时间2020-04-08,差值为2
SELECT DATEDIFF(NOW(),'2020-04-06') 
timestampdiff

语法为:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。
常用的值有:

  • FRAC_SECOND。表示间隔是毫秒
  • SECOND。秒
  • MINUTE。分钟
  • HOUR。小时
  • DAY。天
  • WEEK。星期
  • MONTH。月
  • QUARTER。季度
  • YEAR。年
-- now()值为 2020-04-08 23:20:20
SELECT TIMESTAMPDIFF(DAY,NOW(),'2020-04-10 23:23:23') 
-- 结果为2,相差两天,取整数
-- 其他单位同理

这篇关于MYSQL中日期加减(前一天、后一天等)以及格式化的函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445009

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp