MySQL函数学习(三)—–日期和时间函数

注:笔记旨在记录

三、MySQL 日期和时间函数

3.1 获取时间、日期、年、月、日、周、日相关函数

\ 函 数 名 称 作 用 1 CURDATE 和 CURRENT_DATE

获取系统当前日期(YYYY-MM-DD) 2 CURTIME 和 CURRENT_TIME

获取系统当前时间(hh-mm-ss) 3 TIME

返回expr参数时间字符串(hh-mm-ss) 4 NOW 、CURRENT_TIMESTAMP 和 SYSDATE

获取系统当前时间(YYYY-MM-DD hh-mm-ss) 5 YEAR 和 YEARWEEK

返回date年 返回date的年+当前周次 6 MONTH 和 MONTHNAME

返回月份,返回月份英语名称 7 WEEK 、 WEEKDAY 和 DAYOFWEEK

一年中的第几周 、一周中的第几天 8 DAYOFYEAR、DAYOFMONTH、DAY、DAYOFWEEK、DAYNAME

年x日 月x日 月x日 周x日 周星期x

3.1.1 CURDATE(), CURRENT_DATE(), CURRENT_DATE –获取当前日期(YYYY-MM-DD)

1). 函数:

  • CURDATE() : 获取系统当前日期(YYYY-MM-DD)
  • CURRENT_DATE() : 与上等同
  • CURRENT_DATE : 与上等同

2). sql示例:

SELECT CURDATE(), CURRENT_DATE(), CURRENT_DATE,
       CURDATE()+0, CURRENT_DATE()+0, CURRENT_DATE+ 0

MySQL函数学习(三)-----日期和时间函数

都可在后面 ‘+0’,转换为数值字符串

3.1.2 CURTIME(),CURRENT_TIME(),CURRENT_TIME — 获取当前时间(hh-mm-ss)

1). 函数:

  • CURTIME() : 获取系统当前时间(hh-mm-ss)
  • CURRENT_TIME() : 与上等同
  • CURRENT_TIME : 与上等同

2). sql示例:

SELECT CURTIME(), CURRENT_TIME(), CURRENT_TIME,
       CURTIME()+0, CURRENT_TIME()+0, CURRENT_TIME+ 0

MySQL函数学习(三)-----日期和时间函数

都可在后面 ‘+0’,转换为数值字符串

3.1.3 TIME(expr) –返回expr时间字符串

1). 函数:

  • TIME(expr): 返回expr时间或日期的时间部分,返回字符串

2). sql示例:

    SELECT TIME('2022-03-28 22:08:22'),TIME('132022'),TIME('13:20:22')

MySQL函数学习(三)-----日期和时间函数

3.1.4. NOW(),SYSDATE(),CURRENT_TIMESTAMP –获取当前时间(YYYY-MM-DD hh-mm-ss)

1). 函数:

  • NOW(): 获取系统当前时间(YYYY-MM-DD hh-mm-ss)
  • SYSDATE(): 与上等同
  • CURRENT_TIMESTAMP: 与上等同

2). sql示例:

SELECT NOW(),SYSDATE(),CURRENT_TIMESTAMP,SLEEP(2), NOW(),SYSDATE(),CURRENT_TIMESTAMP
SELECT NOW()+0,SYSDATE()+0,CURRENT_TIMESTAMP+0

MySQL函数学习(三)-----日期和时间函数

都可在后面 ‘+0’,转换为数值字符串

3.1.5. YEAR(date),YEARWEEK(date),YEARWEEK(date,mode) –返回date年[+当前周次]

1). 函数:

  • YEAR(date): 返回date年。
  • YEARWEEK(date): 返回date的年+当前周次。
  • YEARWEEK(date,mode): 返回date的年+当前周次,mode指定模式

2). sql示例:

SELECT YEAR('2022-03-28'), YEARWEEK('2022-03-27')

MySQL函数学习(三)-----日期和时间函数
SELECT YEARWEEK('2022-03-27',1),YEARWEEK('2022-03-27',2),YEARWEEK('2022-03-27',3),YEARWEEK('2022-03-27',4),YEARWEEK('2022-03-27',5)

MySQL函数学习(三)-----日期和时间函数

3.1.6. MONTH(date),MONTHNAME(date) — 返回月份,月份英语名称

1). 函数:

  • MONTH(date):返回月份
  • MONTHNAME(date): 返回月份名称

2). sql示例:

SELECT MONTH('2022-03-28'),MONTHNAME('2022-03-28')

MySQL函数学习(三)-----日期和时间函数

3.1.7. WEEK(date[,mode]), WEEKDAY(date) ,DAYOFWEEK(date) — 一年中的第几周 、一周中的第几天

1). 函数:

  • WEEK(date[,mode]): 一年中的第几周,mode用于指定模式
  • WEEKDAY(date): 一周中的第几天,从星期一开始计数,序号从0开始,0-6
  • DAYOFWEEK(date): 一周中的第几天,从星期日开始计数,序号从1开始,1-7 ||所以与WEEKDAY(date)函数值相差2或5

2). sql示例:

SELECT WEEK('2022-03-28'),WEEKDAY('2022-03-28'),DAYOFWEEK('2022-03-28')

MySQL函数学习(三)-----日期和时间函数

3.1.8. DAYOFYEAR(date),DAYOFMONTH(date),DAY(date),DAYOFWEEK(date),DAYNAME(date) — 返回第几天或星期几

1). 函数:

  • DAYOFYEAR(date): 一年的第几天
  • DAYOFMONTH(date)等同于 DAY(date): 当前月的第几天
  • DAYOFWEEK(date): 一周的第几天(第一天为星期一)
  • DAYNAME(date): 一周的星期几

2). sql示例:

SELECT DAYOFYEAR('2022-03-28'),DAYOFMONTH('2022-03-28'),DAY('2022-03-28'),DAYOFWEEK('2022-03-28'),DAYNAME('2022-03-28')

MySQL函数学习(三)-----日期和时间函数

3.2 时间,时间计算,时间戳相关函数

\ 函 数 名 称 作 用 1 UNIX_TIMESTAMP

返回时间戳 2 __FROM_UNIXTIME

时间戳转时间 3 TIME_TO_SEC 和a SEC_TO_TIME

时间转秒,秒转时间 4 DATE_ADD 和 ADDDATE

时间增加,年月日时分秒毫秒等 5 DATE_SUB 和 SUBDATE

时间减少,年月日时分秒毫秒等 6 ADDTIME 和 SUBTIME

时间加减

3.2.1. UNIX_TIMESTAMP() — 返回时间戳

1). 函数:

  • UNIX_TIMESTAMP()`: 返回时间(无参时为当前时间)的时间戳,从’1970-01-01 00:00:00’GMT后开始计时

2). sql示例:

SELECT UNIX_TIMESTAMP('1970-01-01'),UNIX_TIMESTAMP('1970-01-01 00:00:00'),UNIX_TIMESTAMP('1970-01-01 23:59:59'),UNIX_TIMESTAMP('1970-01-02 00:00:00')

MySQL函数学习(三)-----日期和时间函数

3.2.2. FROM_UNIXTIME(unix_timestamp,format) — 时间戳转时间

1). 函数:

  • __FROM_UNIXTIME(unix_timestamp,format):将时间戳unix_timestamp转换为时间,可以指定输出时间的格式。与UNIX_TIMESTAMP()互为反函数。

2). sql示例:

SELECT UNIX_TIMESTAMP('2022-03-28'),FROM_UNIXTIME(1648396801),FROM_UNIXTIME(1648396822,'%Y-%m-%d %H:%i:%S')

MySQL函数学习(三)-----日期和时间函数

注:
常用输出格式参数如下:

3.2.3. TIME_TO_SEC 和a SEC_TO_TIME — 时间转秒,秒转时间

1). 函数:

  • TIME_TO_SEC(time):时间转秒。
  • SEC_TO_TIME(seconds): 秒转时间

2). sql示例:

    SELECT TIME_TO_SEC('22:22:22'),SEC_TO_TIME(80542)

MySQL函数学习(三)-----日期和时间函数

3.2.4. DATE_ADD(date,INTERVAL expr unit),ADDDATE(date,INTERVAL expr unit),ADDDATE(expr,days) — 时间增加

1). 函数:

  • DATE_ADD(date,INTERVAL expr unit):通过参数对时间date进行增加
  • ADDDATE(date,INTERVAL expr unit):通过参数对时间date进行增加
  • ADDDATE(expr,days):在日期expr基础上增加days天

2). sql示例:

SELECT '2022-03-28',
    DATE_ADD('2022-03-28',INTERVAL 1 SECOND) as '1 SECOND',
    DATE_ADD('2022-03-28',INTERVAL 1 HOUR)   as '1 HOUR',
    DATE_ADD('2022-03-28',INTERVAL '1:1' MINUTE_SECOND) as "'1:1' MINUTE_SECOND",
    ADDDATE('2022-03-28',INTERVAL 7 MONTH) as '7 MONTH',
    ADDDATE('2022-03-28',5) as "days = 5"

MySQL函数学习(三)-----日期和时间函数

注:INTERVAL expr unit参数有多种选择,常用的有’SECOND'(秒),’MINURE'(分钟),’HOUR'(小时)等。

3.2.5. DATE_SUB(date,INTERVAL expr unit),SUBDATE(date,INTERVAL expr unit),SUBDATE(expr,days) — 时间减少

1). 函数:

  • DATE_SUB(date,INTERVAL expr unit):通过参数对时间date进行减少
  • SUBDATE(date,INTERVAL expr unit):通过参数对时间date进行减少
  • SUBDATE(expr,days):在日期expr基础上减少days天

2). sql示例:

SELECT '2022-03-28',
    DATE_SUB('2022-03-28',INTERVAL "1:3" HOUR_MINUTE) as '"1:3" HOUR_MINUTE',
    DATE_SUB('2022-03-28',INTERVAL "2:3" MINUTE_MICROSECOND)   as '"2:3" MINUTE_MICROSECOND',
    DATE_SUB('2022-03-28',INTERVAL '1:1' YEAR_MONTH) as "'1:1' YEAR_MONTH",
    SUBDATE('2022-03-28',INTERVAL "5:20" DAY_HOUR) as '"5:20" DAY_HOUR',
    SUBDATE('2022-03-28',5) as "days = 5"

MySQL函数学习(三)-----日期和时间函数

3.2.6. ADDTIME(expr1,expr2),SUBTIME(expr1,expr2) -时间加减

1). 函数:

  • ADDTIME(expr1,expr2): expr1基础上增加expr2时间
  • SUBTIME(expr1,expr2): expr1基础上减少xpr2时间

2). sql示例:

SELECT '2022-03-28 12:12:12',
       ADDTIME('2022-03-28 12:12:12','02:02:02') as "+ 02:02:02",
       SUBTIME('2022-03-28 12:12:12','02:02:02') as "- 02:02:02",
       SUBTIME('2022-03-28 12:12:12','02022') as " - 00:20:22"

MySQL函数学习(三)-----日期和时间函数

Original: https://www.cnblogs.com/hmpn/p/16202071.html
Author: hmpn
Title: MySQL函数学习(三)—–日期和时间函数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/621020/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 深入浅出分析 ArrayDeque

    作者:炸鸡可乐原文出处:www.pzblog.cn 一、摘要 在 jdk1.5 中,新增了 Queue 接口,代表一种队列集合的实现,咱们继续来聊聊 java 集合体系中的 Que…

    数据库 2023年6月14日
    091
  • 不同分层中的对象的使用

    在项目中,控制层,业务层,数据层,视图层(返回值)。中分别使用了的对象,暂时不太理解这样做的好处,先记录下来。 如下: 控制层:也可以叫做入参对象, UserQuery userQ…

    数据库 2023年6月11日
    072
  • Java-课堂笔记

    用Typora重新排版了下, 发现还有挺多问题, 手动排版好像也不识别. 太麻烦就这样了, 课堂笔记只是证明自己没有上课摸鱼, 这里的笔记是当初疫情上网课写的. 以后会按照路线重新…

    数据库 2023年6月11日
    086
  • MySQL45讲之count操作

    本文介绍 MyISAM 和 InnoDB 如何执行 count 操作,如果是一个需要使用 count 进行大量计数的场景,应该如何设计实现,以及不同 count 操作的效率。 My…

    数据库 2023年5月24日
    088
  • 7、解决swagger测试接口报错:TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body

    一、Swagger报错: 1、报错类型: TypeError: Failed to execute ‘fetch’ on ‘Window&#82…

    数据库 2023年6月6日
    081
  • 2022-08-20 数据库连接池

    每次去初始化一个连接池,连接池中会有很多个连接等待被使用,使用完连接之后,不需要关闭连接,只需要把连接还回到连接池,还回到连接池的操作不需要我们手动控制。 数据库连接池负责分配、管…

    数据库 2023年6月14日
    092
  • 分布式事务解决方案

    分布式事务解决方案 花开堪折直须折,莫待无花空折枝。 分布式事务是指事务的操作位于不同的节点上,需要保证事务的ACID特性。在分布式架构下,每个节点只知晓自身操作的成功与失败,无法…

    数据库 2023年6月14日
    095
  • Windows安装mysql数据库

    一般我安装mysql用以下两个方法: 一.phpstudy环境下的mysql安装 只需将mysql的bin目录配置到系统环境变量即可, 输入默认密码root即可登录 二.本地直接安…

    数据库 2023年5月24日
    087
  • java扫描某个包下的所有java类并加载

    最近在学习java的反射和注解,实际情景中需要扫描某个包下的所有java类,然后使用类加载器加载类。 基本思路,获得程序的路径扫描src下某个包内的子包和java类,实现也比较简单…

    数据库 2023年6月11日
    0103
  • docker的相关命令

    docker的相关命令 1.安装docker: (1)yum -y install docker ​ sudo sh get-docker.sh 2.从远程拉取应用的镜像源: do…

    数据库 2023年6月16日
    076
  • JAVA中如何取得一个数组中最大值和最小值呢?

    数组是日常开发中,常用的数据结构, 它可用于存储同一类型的数据,如:(基础类型,引用类型) 那么我们如何获取一个数组中的最大值和最小值呢? 对一些基础类型,我们可以直接使用比较, …

    数据库 2023年6月11日
    084
  • Python学习笔记(十一)– Django API RESTful

    (1)路由;(2)视图类(提供给用户访问相当于原来的视图函数);(3)序列化类(提供给视图类使用,把对象序列化成Json) 注意:使用rest_framework,需先 setti…

    数据库 2023年6月16日
    084
  • TypeScript语言基础

    一、什么是TypeScript 编程语言包括动态类型语言和静态类型语言。动态类型语言是指在程序运行阶段才检查变量数据类型的语言,在定义变量时不需要指定变量的数据类型,通常在编译时不…

    数据库 2023年6月14日
    095
  • Map–部分方法

    1.Map.values()方法:获取Map集合中的所有键值对象 获取 Map 集合中的所有键值对象,这些键值对象将存放在另一个集合对象中 2.getOrDefault() 方法 …

    数据库 2023年6月16日
    088
  • 翻译|是否应该在 Kubernetes 上运行数据库?

    数据库如何在 Kubernetes 上运行?如果可以,哪些类型的数据库和数据最适合使用 K8s?让我们一起来看看。 Kubernetes 是用于自动部署、扩展和管理容器化应用程序的…

    数据库 2023年5月24日
    089
  • 带缓冲的输入/输入流

    BufferedInputStream类 与 BufferedOutputStream类 BufferedInputStream类 可以对所有InputStream的子类进行缓冲区…

    数据库 2023年6月16日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球