MySQL 【日期】函数大全(二)

DATE_ADDDATE_FORMATDATE_SUBDATEDIFF
DAYDAYNAMEDAYOFMONTHDAYOFWEEK
1、DATE_ADD

DATE_ADD(date, value) :在指定的日期/时间上加上指定的时间间隔加并返回新的日期/时间。

DATE_ADD(date, value)

DATE_ADD(date, INTERVAL value unit)

date:需要操作的日期。

value:时间/日期间隔。正数和负数都是允许的。

unit:时间/日期间隔的单位。

间隔单位: 

MICROSECOND

SECONDMINUTEHOUR
DAYWEEKMONTHQUARTER
YEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECOND
HOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECOND
DAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
  • 如果 date 参数是 DATE 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATE
  • 如果 date 参数是 DATE 类型,并且时间间隔为 HOURSMINUTES 或者 SECONDS,返回 DATETIME
  • 如果 date 参数是 DATETIME 类型,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且计算只涉及 HOURSMINUTES 和 SECONDS 部分,返回 TIME。(开始于 MySQL 8.0.28)
SELECTDATE_ADD('2020-06-10', INTERVAL 10 DAY),DATE_ADD('2020-06-10', INTERVAL 10 HOUR)

SELECTDATE_ADD('2020-06-10 10:00:00', INTERVAL 10 HOUR),DATE_ADD('2020-06-10 10:00:00', INTERVAL 10 MINUTE)

SELECTDATE_ADD(CURDATE(), INTERVAL 10 HOUR),DATE_ADD(NOW(), INTERVAL 10 MINUTE)

2、DATE_FORMAT

DATE_FORMAT(date, format) :按照指定的格式格式化日期时间。

符号说明
%a星期的缩写 (Sun..Sat)
%b月份的缩写 (Jan..Dec)
%c月份数字 (0..12)
%D带有英语前缀的月份中的每天 (0th1st2nd3rd, …)
%d月份中的每天的两位数字表示 (00..31)
%e月份中的每天的数字表示 (0..31)
%f微秒 (000000..999999)
%H小时 (00..23)
%h小时 (01..12)
%I小时 (01..12)
%i分钟 (00..59)
%j一年中的每天 (001..366)
%k小时 (0..23)
%l小时 (1..12)
%M月份名称 (January..December)
%m两位数字月份 (00..12)
%pAM 或者 PM
%r十二小时制时间 (hh:mm:ss 后跟 AM 或 PM)
%S秒 (00..59)
%s秒 (00..59)
%T二十四小时制时间 (hh:mm:ss)
%U一年中的星期 (00..53), 每周的开始是星期天; WEEK() 函数中的 mode 0
%u一年中的星期 (00..53), 每周的开始是星期一; WEEK() 函数中的 mode 1
%V一年中的星期 (01..53), 每周的开始是星期天; WEEK() 函数中的 mode 2, 用于 %X
%v一年中的星期 (01..53), 每周的开始是星期一; WEEK() 函数中的 mode 3, 用于 %x
%W星期的名称 (Sunday..Saturday)
%w星期中的每天 (0=星期天..6=星期六)
%X一年中的星期,每周的开始是星期天,四位数字,用于 %V
%x一年中的星期,每周的开始是星期一,四位数字,用于 %v
%Y四位数字年份
%y两位数字年份
%%转义 %
%xx, 上面为列举的其他字符
SELECTDATE_FORMAT('2022-02-28', '%Y'),DATE_FORMAT('2014-02-28', '%W'),DATE_FORMAT('2022-02-01', '%M %d, %Y'),DATE_FORMAT('2022-02-01', '%M %e %Y'),DATE_FORMAT('2022-02-28', '%W, %M %e, %Y')

SELECT NOW(), DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%S')

3、DATE_SUB

DATE_SUB(date, INTERVAL value unit) :在指定的日期/时间上减去指定到时间间隔加并返回新的日期/时间。

date:需要操作的日期。

days:在 date 上减去的天数。

value:时间/日期间隔。正数和负数都是允许的。

unit:时间/日期间隔的单位。

间隔单位: 

MICROSECOND

SECONDMINUTEHOUR
DAYWEEKMONTHQUARTER
YEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECOND
HOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECOND
DAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
  • 如果 date 参数是 DATE 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATE
  • 如果 date 参数是 DATE 类型,并且时间间隔为 HOURSMINUTES 或者 SECONDS,返回 DATETIME
  • 如果 date 参数是 DATETIME 类型,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且计算只涉及 HOURSMINUTES 和 SECONDS 部分,返回 TIME。(开始于 MySQL 8.0.28)
SELECTDATE_SUB('2020-06-10', INTERVAL 10 DAY),DATE_SUB('2020-06-10', INTERVAL 10 HOUR)

SELECTDATE_SUB('2020-06-10 10:00:00', INTERVAL 10 HOUR),DATE_SUB('2020-06-10 10:00:00', INTERVAL 10 MINUTE)

SELECTDATE_SUB(CURDATE(), INTERVAL 10 HOUR),DATE_SUB(NOW(), INTERVAL 10 MINUTE)

4、DATEDIFF

DATEDIFF(date1, date2) :返回两个日期值之间的天数。

  • DATEDIFF() 函数只比较 date1 和 date2 的日期部分。如果 date1 的日期晚于 date2 的日期,它返回一个正数,否则返回一个负数或者 0。
  • 如果指定的表达式不是一个合法的日期或者日期时间,DATEDIFF() 函数将返回 NULL
  • 如果参数为 NULLDATEDIFF() 函数将返回 NULL
SELECTDATEDIFF('2022-02-28', '2022-02-28') AS A,DATEDIFF('2022-02-28', '2022-02-28 10:10:10')  AS B,DATEDIFF('2022-02-28 10:10:10', '2022-02-28')  AS C,DATEDIFF('2022-02-28', '2022-02-27')  AS D,DATEDIFF('2022-02-28', '2022-02-27 10:10:10')  AS E,DATEDIFF('2022-02-28 10:10:10', '2022-02-27')  AS F,DATEDIFF('2022-02-30', '2022-02-28 10:10:10')  AS G,DATEDIFF('Not A DATEDIFF', 'Not A DATEDIFF') AS H,DATEDIFF(NULL, '2022-02-28') AS I

SELECT DATEDIFF(NOW(), '2024-02-28');

SELECTDATEDIFF(NOW(), '2024-02-28'),DATEDIFF(CURDATE(), '2024-02-28'),DATEDIFF(CURRENT_DATE(), '2024-02-28'),DATEDIFF(SYSDATE(), '2024-02-28')

5、DAY

DAY(expr) :返回日期时间表达式中的代表月份中的一天的数字。此函数等同于 DAYOFMONTH() 函数。

  • 代表月份中的一天的数字,从 1 到 31。
  • 如果给定的日期的天的部分为 0 ,比如: '0000-00-00' 和 '2008-00-00'DAY() 函数将返回 0
  • 如果指定的表达式不是一个合法的日期或者日期时间,DAY() 函数将返回 NULL
  • 如果参数为 NULLDAY() 函数将返回 NULL
SELECTDAY('2022-02-28'),DAY('2022-02-28 10:10:10'),DAY(NOW()),DAY('2022-02-00'),DAY('2022-02-30'),DAY('Not A DATE'),DAY(NULL)

6、DAYNAME

DAYNAME(expr) :返回给定日期的工作日名称。

  • 返回值将是以下值中的一个: MondayTuesdayWednesdayThursdayFridaySaturdaySunday
  • 如果指定的表达式不是一个合法的日期或者日期时间,DAYNAME() 函数将返回 NULL
  • 如果参数为 NULLDAYNAME() 函数将返回 NULL
SELECTDAYNAME('2024-02-21'),DAYNAME('2024-02-23'),DAYNAME(NOW()),DAYNAME('2024-02-00'),DAYNAME('2024-02-30'),DAYNAME('Not A DATE'),DAYNAME(NULL)

SELECTDAYNAME(NOW()),DAYNAME(CURDATE()),DAYNAME(CURRENT_DATE()),DAYNAME(SYSDATE())

7、DAYOFMONTH

DAYOFMONTH(expr) :返回日期时间表达式中的代表月份中的一天的数字。此函数等同于DAY() 函数。

  • 代表月份中的一天的数字,从 1 到 31。
  • 如果给定的日期的天的部分为 0 ,比如: '0000-00-00' 和 '2008-00-00'DAY() 函数将返回 0
  • 如果指定的表达式不是一个合法的日期或者日期时间,DAY() 函数将返回 NULL
  • 如果参数为 NULLDAY() 函数将返回 NULL

SELECTDAYOFMONTH('2022-02-28'),DAYOFMONTH('2022-02-28 10:10:10'),DAYOFMONTH(NOW()),DAYOFMONTH('2024-02-00'),DAYOFMONTH('2022-02-30'),DAYOFMONTH('Not A DATE'),DAYOFMONTH(NULL)

8、DAYOFWEEK

DAYOFWEEK(expr) :返回给定日期的工作日的索引。

返回一个从 1 到 7 之间的数字,代表的含义如下:

  • 1 - 星期天
  • 2 - 星期一
  • 3 - 星期二
  • 4 - 星期三
  • 5 - 星期四
  • 6 - 星期五
  • 7 - 星期六

如果指定的表达式不是一个合法的日期或者日期时间,DAYOFWEEK() 函数将返回 NULL

如果参数为 NULLDAYOFWEEK() 函数将返回 NULL

SELECTDAYOFWEEK('2024-02-21'),DAYOFWEEK('2024-02-22'),DAYOFWEEK('2024-02-00'),DAYOFWEEK('2024-02-30'),DAYOFWEEK('Not A DATE'),DAYOFWEEK(NULL)

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

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

相关文章

Agent的四种设计模式,从零实现Agent框架

让大模型返回json格式,方便直接处理数据。 LLM支持json格式: def chat(self, user\_prompt, json\_modeFalse): kwargs {} if json\_mode: kwargs\["response\_format"\] \ {"type": "json\_object"} completion …

深圳大学-Java程序设计-选实验1 基础知识练习

实验目的与要求: 实验目的:掌握Java程序设计开发环境的搭建,编写简单Java Project,掌握编译、运行等基本步骤和命令。 实验要求: (1).下载、安装"Java SE Development Kit 20.0.2"最新的版本,需…

【harmonyOS开发笔记3】ArkTS中数组的使用

数组的定义 数组:是一个容器,可以存储多个数据 定义数组的格式: let 数组名: 类型[] [数据1, 数据2, ] 示例:let names: string[] [小明, 小红] // 数组 let 数组名: 类型[] [数据1, 数据2, ] let …

基于yolov8、yolov5的动物检测系统(含UI界面、训练好的模型、Python代码、数据集)

摘要:动物识别在生态保护及科研领域中起着至关重要的作用,不仅能有效监测野生动物的分布,还为自动化生态监测提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的动物识别模型,该模型使用了大量图片进行训练…

MySQL 8.4.0解压版安装记录

这几天,安装最新版mysql 8.4的时候,遇到了不少问题,网上的教程大多数都是旧版本的,也安装不成功。 参考了大量教程后,经过自己的摸索终于装好了,这里记录一下。 我下载的是8.4.0 LTS MySQL :: Download …

面试官:讲一下SEO优化

一、什么是SEO优化? SEO就是搜索引擎优化 二、为什么要做SEO优化? 通过优化将网站的排名更靠前,吸引更多的用户访问,达到网站营销或者宣传效果,实现盈利 三、SEO优化要怎么做? 1、TKD设置 可以通过准确的TK…

解决pyinstaller 打包 ddddocr 库方法

前言 ddddocr 库 在打包成 exe 文件后一直有各种各样的问题。无法运行。 总是提示缺少 onnxruntime_providers_shared.dll 等问题。例如下图: 所以这里总结一下打包解决方法。 方法 1、 第一步,先使用命令打包一次 pyinstaller -F demo.py -p D:\Python38\Lib\site-pac…

Tongweb7049m4+THS6010-6012配置故障轉移+重試机制(by lqw)

使用场景 1.ths代理tongweb多套后端,假如有其中一套tongweb因为服务器重启或者宕机后没有及时启动,导致ths一直轮询在这个出故障的节点上。 2.即使在tongweb重启了,有的应用启动也需要一定的时间,这个时候只是启动了应用端口&…

【力扣刷题实战】(归并排序)合并两个有序数组

大家好,我是小卡皮巴拉 文章目录 目录 力扣题目: 合并两个有序数组 题目描述 示例 1: 示例 2: 示例 3: 解题思路 具体思路 题目要点 作图助解 完整代码(C语言) 兄弟们共勉 &#…

Docker 教程二 (架构)

Docker 架构 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器&am…

【C++】——继承(下)

【C】——继承(下) 5 继承与友元6 继承与静态成员7 多继承7.1 继承模型7.2 菱形继承的问题7.3 虚继承7.4 多继承中的指针偏移问题 8 组合与继承 5 继承与友元 友元关系不能被继承。即一个函数是父类的友元函数,但不是子类的友元函数。也就是说…

这篇Cell刚上线的AI for Science论文,能给你带来哪些灵感?

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 2024年10月9日,中山大学医学院施莽教授团队和阿里云李兆融团队合作在Cell上发表了文章Using artificial intelligence to document the hidden RNA virosphere。 研…

再也不怕面试官问我几百亿ip相关的问题了

首先要明确这一类的问题都是海量那个数据类型的问题,对于海量数据我们一般采用分而治之的思路去解决,考官考察的就是你有没有处理海量数据的经验。总结几个常见的海量数据相关的面试,供参考。 有一个存放10GB的ip地址文件,每行一…

10款电脑加密软件超好用分享|2024年常用电脑加密软件排行榜

在数字化日益加深的今天,数据安全变得愈发重要。无论是个人的隐私信息还是企业的敏感数据,加密软件都能有效保护文件不被未授权访问。以下是2024年常用的10款电脑加密软件,供您参考与选择。 1.安秉网盾 安秉网盾是一款专为企业设计的信息安全…

超级会员卡积分收银系统源码 余额充值+积分功能+积分商城 带完整的安装代码包以及搭建部署教程

系统概述 超级会员卡积分收银系统是一款专为中小商家设计的会员卡管理系统,旨在通过智能化的会员管理和丰富的营销活动,提升客户的忠诚度和消费频次。该系统采用先进的Web技术架构,支持多终端访问,无论是PC端、手机端还是平板&am…

福禄克通道测试和跳线测试的不同于在哪里?

简单的从测试报告,我们也可以看出,channel的测试参数比patchcord的测试参数多很多。 有的朋友会认为,是不是channel测试更严格,错,反而是patchcord更严格。

转行风口上的AI大模型开发,能不能挽救我的职业生涯?

大模型算是当之无愧最火的一个方向了,算是新时代的风口。有小伙伴觉得,既然是新领域、新方向,那么,人才需求肯定比较大,相应的人才缺乏,竞争也会更少 ,那转行去做大模型是不是一个更好的选择呢&…

2014年国赛高教杯数学建模C题生猪养殖场的经营管理解题全过程文档及程序

2014年国赛高教杯数学建模 C题 生猪养殖场的经营管理 某养猪场最多能养10000头猪,该养猪场利用自己的种猪进行繁育。养猪的一般过程是:母猪配种后怀孕约114天产下乳猪,经过哺乳期后乳猪成为小猪。小猪的一部分将被选为种猪(其中公…

大数据时代!如何利用用户画像提升展会招展效率?

在大数据的浪潮中,企业如何精准捕捉市场脉搏?答案就藏在“用户画像”中。这一新兴工具,正逐渐成为企业精准营销和提升客户体验的秘密武器。本文将带您深入了解用户画像的精髓,探索其在会展招展领域的独特魅力。 用户画像是什么&a…

【Java】jvisualvm工具

jdk8及以下版本自带,在jdk的bin目录下,jvisualvm.exe jdk8以上去官网下载:https://visualvm.github.io/index.html 本地的会自动获取,发布在服务器上的用远程进行连接,发布的程序需配置JVM参数,如下 -Dcom…