【MySQL新手到通关】第六章 时间日期函数

news/2024/11/23 0:32:22/

文章目录

  • 1.获取日期时间函数
    • 1.1 获取当前日期时间
    • 1.2 获取当前日期
    • 1.3 获取当前时间
  • 2.日期格式化★★★
    • 2.1 日期转指定格式字符串
    • 2.2 字符串转日期
  • 3.日期间隔
    • 3.1 增加日期间隔 ★★★
    • 3.2 减去一个时间间隔★★★
    • 3.3 日期相差天数(天)
    • 3.4 相差时间(小时)
  • 4.星期操作
    • 4.1 返回日期date的星期索引
  • 5.其它操作



在这里插入图片描述


MySQL的日期函数主要用来对日期和时间类型的数据进行计算、格式化和转换,能够帮助程序员更加方便地处理存储在MySQL数据库中的时间数据。使用这些函数可以实现以下功能:

格式化日期和时间:通过指定不同的日期格式输出相应的日期或时间字符串。

提取日期和时间的各个部分:提取一个时间值中的年、月、日、时、分、秒等信息。

进行日期加减操作:在一个日期值上进行加减运算,例如将某一日期加上一天或减去半个月。

返回日期时间差异:计算两个日期或时间的差值,例如计算两个日期之间相隔多少天、小时或分钟等。

对日期与时间类型进行类型转换:将日期类型转化为UNIX时间戳或者将字符串日期转化为DATE类型。

这些日期函数使得对日期时间相关操作变得十分灵活和简单,同时还可以在SQL语句中高度发挥作用,以满足各种复杂的业务需求。

以下是具体的API

1.获取日期时间函数

1.1 获取当前日期时间

获取的是当前日期时间的 年月日时分秒

SELECT NOW(); # 2023-05-11 18:21:17

在这里插入图片描述

1.2 获取当前日期

获取的是当前日期的年月日

SELECT CURRENT_DATE(); # 2023-05-11

在这里插入图片描述

1.3 获取当前时间

获取的是当前时间 时分秒

SELECT CURRENT_TIME(); # 18:22:10

在这里插入图片描述

2.日期格式化★★★

2.1 日期转指定格式字符串

SELECT DATE_FORMAT('2022-01-08 22:23:01', '%Y%m%d%H%i%s');# 20220108222301
说明:
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位 ★★★
%y 年, 数字, 2%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31) ★★★
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12) ★★★
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59) ★★★
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天,查询指定日期属于当前年份的第几个周 ★★★
%u 星期(0……52), 这里星期一是星期的第一天

示例代码:

# 日期格式化
select date_format(now(),'%Y%m%d%H%i%s');
# 获取当前是星期几
select date_format(now(),'%Y%m%W');
# 查看当前属于一年中的第几个周 以周末作为一个循环
select date_format(now(),'%Y%U');
select date_format('20220108090109','%Y%U');

2.2 字符串转日期

将指定的字符串以指定的格式转换为日期

# 日期格式与表达式格式一致即可
SELECT STR_TO_DATE('06/01/2022', '%m/%d/%Y'); # 2022-06-01
SELECT STR_TO_DATE('20220108090109', '%Y%m%d%H%i%s'); # 2022-01-08 09:01:09

3.日期间隔

3.1 增加日期间隔 ★★★

# 间隔单位可以是DAY MONTH MINUTE WEEK YEAR SECOND HOUR
SELECT DATE_ADD(NOW(),INTERVAL 2 DAY); # 2022-01-07 22:46:39
SELECT DATE_ADD(NOW(),INTERVAL 2 MONTH); # 2022-02-06 22:47:17
SELECT DATE_ADD('2022-02-06 22:47:17',INTERVAL 2 MONTH); # 2022-04-06 22:47:17

3.2 减去一个时间间隔★★★

SELECT DATE_SUB(NOW(),INTERVAL 3 DAY); # 2022-01-03 22:49:24
SELECT DATE_SUB('2022-02-06 22:47:17',INTERVAL 2 MONTH); # 2021-12-06 22:47:17

3.3 日期相差天数(天)

select datediff('2022-01-06','2021-12-28'); -- 9

3.4 相差时间(小时)

select timediff('2022-01-06 08:08:08', '2021-12-28 09:00:00'); -- 08:08:08

4.星期操作

4.1 返回日期date的星期索引

# 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
SELECT DAYOFWEEK(NOW())-1;# 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)
SELECT WEEKDAY(NOW())+1

5.其它操作

# 获取日
SELECT DAYOFMONTH(NOW());# 6
# 获取月份
SELECT MONTH(NOW());# 1
# 获取星期几
SELECT DAYNAME(NOW());# Thursday
# 获取第几季度
SELECT QUARTER(NOW());# 2022/1/6 --> 1

在这里插入图片描述


http://www.ppmy.cn/news/97639.html

相关文章

1105 Spiral Matrix(32行代码+详细注释)

分数 25 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 This time your job is to fill a sequence of N positive integers into a spiral matrix in non-increasing order. A spiral matrix is filled in from the first element at the upper-left corner, then…

关于强电与弱的的介绍

强电?弱电?傻傻分不清楚,今天海翎光电的小编为大家系统的介绍一下强电与弱电。 什么是强电? (1)供配电系统:供配电系统包括负荷分级、供电措施、负荷力矩、电网谐波限值、用电指标、负荷所需要…

RNN Seq2Seq

Feedforward v.s. Recurrent Feedforward network does not have input at each stepFeedforward network has different parameters for each layer 双向RNN 双向递归层可以提供更好的识别预测效果,但却不能实时预测,由于反向递归的计算需要从最末时刻…

【Servlet】

目录 🎂1. 第一个 Servlet 程序:使用 Servlet 写 hello world 🥞1.1 创建项目 🍳1.2 引入依赖 🎃1.3 创建目录 🍘1.4 开始写代码 🌍1.5 打包代码 🍤1.6 部署 👑1…

《C++程序设计原理与实践》笔记 第18章 向量和数组

本章将介绍如何拷贝以及通过下标访问向量。为此,我们讨论一般的拷贝技术,并考虑向量与底层数组表示之间的关系。我们将展示数组与指针的关系及其使用引发的问题。我们还将讨论对于每种类型必须考虑的五种基本操作:构造、默认构造、拷贝构造、…

python--杂识--9--subprocess.Popen()各参数含义

subprocess.Popen() 是一个非常有用的 Python 模块,它可以在当前进程内或者在子进程中运行系统命令,并能够查看返回结果。它的一般语法如下: subprocess.Popen(args, bufsize-1, executableNone, stdinNone, stdoutNone,stderrNone, preexec…

rust初级概念及部分操作

文章目录 1、变量与可变性2、数据类型2.1、标量类型2.2、复合类型 3、函数4、控制流4.1、if else4.2、循环 5、所有权5.1、stack与heap5.2、所有权规则5.3、内存与分配5.4、所有权与函数5.5、引用和借用5.6、切片 6、struct7、枚举与匹配7.1、枚举7.2、match 8、package、crate…

漫游计算机系统

1.信息就是位 上下文 那么什么是信息呢? 在计算机系统中,所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据。本质上是一串比特位。 那么又要了解什么是比特了,比特(bit)就是二进制&#xff…