MySQL日期时间函数知识汇总


Posted in MySQL onMarch 17, 2022

1. 获取时间

函数 功能 返回格式
CURDATE(), CURRENT_DATE() 返回当前日期,只包含年、月、日 2022-03-08
CURTIME(), CURRENT_TIME() 返回当前时间,只包含时、分、秒 19:35:46
NOW(), SYSDATE(), CURRENT_TIMESTAMP(), LOCALTIME(), LOCALTIMESTAMP() 返回当前系统日期和时间 2022-03-08 19:37:07
UTC_DATE() 返回UTC(世界标准时间)日期 2022-03-08
UTC_TIME() 返回UTC(世界标准时间)时间 11:38:52

2. 日期与时间戳的转换

函数 功能 返回格式
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(NOW()) 以UNIX时间戳的形式返回当前时间 1646739875
FROM_UNIXTIME(1646739875) 将UNIX时间戳转换为普通时间格式 2022-03-08 19:44:35

3. 获取月份、星期、星期数、天数等函数

函数 功能 返回格式
YEAR(NOW()),/MONTH(NOW()),/DAY(NOW()) 返回年/月/日 2022/3/8
HOUR(NOW()), /MONTH(NOW()), /DAY(NOW()) 返回时/分/秒 19/3/8
MONTHNAME(NOW()) 返回英文月份 March
DAYNAME(NOW()) 返回星期几 Tuesday
WEEKDAY(NOW()) 返回周几(从0开始) 1(星期二)
QUARTER(NOW()) 返回日期对应的季度,范围1-4 1
WEEK(NOW()), WEEKOFYEAR(NOW()) 返回一年中的第几周 10
DAYOFYEAR(NOW()) 返回一年中的第几天 67
DAYOFMONTH(NOW()) 返回所在月份中的第几天 8
DAYOFWEEK(NOW()) 返回周几(周日为1) 3(星期二)

4. 日期的操作函数

-- 返回指定日期中的特定部分,type指定返回的值;
SELECT EXTRACT(TYPE FROM NOW()) FROM DUAL;

TYPE的含义与取值:

type取值 含义 返回值
MICROSECOND 返回毫秒数  
SECOND 返回秒数 12
MINUTE 返回分钟数 25
HOUR 返回小时数 20(24小时制)
DAY 返回天数 8
WEEK 返回日期在一年中的第几个星期 10
MONTH 返回日期在一年中的第几个月 3
QUARTER 返回日期在一年中和第几个季度 1
YEAR 返回日期的年份 2022
SECOND_MICROSECOND 返回秒和毫秒值 34000000
MINUTE_MICROSECOND 返回分钟和毫秒值 3716000000
MINUTE_SECOND 返回分钟和秒值 3851(2022-03-08 20:38:51)
HOUR_MICROSECOND 返回小时和毫秒值 203944000000(2022-03-08 20:39:44)
HOUR_SECOND 返回小时和秒值 204025(2022-03-08 20:40:25)
HOUR_MINUTE 返回小时和分钟值 2040(2022-03-08 20:40:52)
DAY_MICROSECOND 返回天和毫秒值 204126000000(2022-03-08 20:41:26)
DAY_SECOND 返回天和秒值 204208(2022-03-08 20:42:08)
DAY_MINUTE 返回天和分钟值 2043(2022-03-08 20:43:17)
DAY_HOUR 返回天和小时 20(2022-03-08 20:43:54)
YEAR_MONTH 返回年和月 202203(2022-03-08 20:44:23)

5. 时钟和秒钟转换的函数

-- 将time转化为秒并返回结果值,转化公式为:小时*3600*分钟*69+秒
SELECT TIME_TO_SEC('2022-03-08 20:44:23')
FROM DUAL;
-- 转换结果:74663

-- seconds转化为时分秒
SELECT SEC_TO_TIME(74663) FROM DUAL;  
-- 转换结果:20:44:23

6. 计算日期和时间的函数

6.1 计算时间间隔

函数 功能 备注
DATE_ADD(datetime, INTERVAL expr type),ADDDATE(datetime, INTERVAL expr type) 计算时间间隔(时间增加) expr表示时间间隔,type值见下表
DATE_SUB(datetime, INTERVAL expr type),SUBDATE(datetime, INTERVAL expr type) 计算时间间隔(时间减少) expr表示时间间隔,type值见下表

举例:

SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL 2 DAY) AS A FROM DUAL;
SELECT ADDDATE('2022-03-08 20:43:54', INTERVAL 2 DAY) AS B FROM DUAL;
-- 返回相同结果:2022-03-10 20:43:54


SELECT DATE_SUB('2022-03-08 20:43:54', INTERVAL 2 DAY) C FROM DUAL;
SELECT SUBDATE('2022-03-08 20:43:54', INTERVAL 2 DAY) D FROM DUAL;
-- 返回相同结果:2022-03-06 20:43:54


-- 间隔两和类型的时间时可以用冒号和下划线,要用单引号
SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL '2:2' DAY_HOUR ) AS A FROM DUAL;
SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL '2_2' DAY_HOUR ) AS A FROM DUAL;
-- 返回相同结果:2022-03-10 22:43:54

type值如下表:

type间隔类型 含义
HOUR 小时
MINUTE 分钟
SECOND
YEAR
MONTH
DAY
YEAR_MONTH 年和月
DAY_HOUR 日和小时
DAY_MINUTE 日和分钟
DAY_SECOND 日和秒
HOUR_MINUTE 小时和分钟
HOUR_SECOND 小时和秒
MINUTE_SECOND 分钟和秒

6.2 时间计算

函数 功能 返回格式
ADDTIME(time1, expr) 添加expr到time1并返回结果 2022-03-09 21:44:55
SUBTIME(time2, expr) time1减去expr并返回结果 2022-03-07 19:42:53
DATEDIFF(time1, time2) 返回time1与time2的日期间隔(time1-time2) -1(天)
TIMEDIFF(time1, time2) 返回time1与time2的时间间隔(time1-time2) 26:03:45(时分秒)
FROM_DAYS(N) 返回从0000年1月1日起,N天以后的日期 0002-09-27
TO_DAYS(time) 返回时间time距离0000年1月1日的天数 738588
LAST_DAY(time) 返回time所在月份的最后一天的日期 2022-03-31
MAKEDATE(year, n) 针对给定年份与所在年份中的天数返回一个日期 2022-04-10
MAKETIME(h, m, s) 将给定的小时、分钟和秒组合成时间并返回 10:20:33
PERIOD_ADD(time,n) 此函数将给定时期的给定月份数添加到格式YYMM或YYYYMM中 20220309

举例:

SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL '2:2' DAY_HOUR ) AS A FROM DUAL;
-- 返回:2022-03-10 22:43:54

SELECT ADDTIME('2022-03-08 20:43:54', '1 1:1:1') FROM DUAL;
-- 返回:2022-03-09 21:44:55

SELECT SUBTIME('2022-03-08 20:43:54', '1 1:1:1') FROM DUAL;
-- 返回:2022-03-07 19:42:53

SELECT DATEDIFF('2022-03-08 20:43:54', '2022-03-09 20:43:54') AS A FROM DUAL;
-- 返回:-1

SELECT TIMEDIFF('2022-03-09 20:43:54', '2022-03-08 18:40:09') AS B FROM DUAL;
-- 返回:26:03:45

SELECT FROM_DAYS(1000) FROM DUAL;
-- 返回:0002-09-27

SELECT TO_DAYS('2022-03-09 20:43:54') FROM DUAL;
-- 返回:738588

SELECT LAST_DAY('2022-03-09 20:43:54') FROM DUAL;
-- 返回:2022-03-31

SELECT MAKEDATE(2022, 100) FROM DUAL;
-- 返回:2022-04-10

SELECT MAKETIME(10, 20, 33) FROM DUAL;
-- 返回:10:20:33

SELECT PERIOD_ADD(20220308,1) FROM DUAL;
-- 返回:20220309

7. 日期的格式化与解析

函数 功能 返回格式
DATE_FORMAT(date,fmt) 按照字符串fmt格式化日期date值  
TIME_FORMAT(time,fmt) 按照字符串fmt格式化时间time值  
STR_TO_DATE(str, fmt) 按照字符串fmt对str进行解析,解析为一个日期  

fmt格式如下:

格式符 说明 格式符 说明
%Y 4位数字表示年份 %y 表示两位数字的年份
%M 月名表示月份(January,....) %m 两位数字表示月份
%b 缩写的月名(Jan.,Feb.,....) %d 两位数字表示月中的天数
%D 英文后缀表示月中的天数(1st,2nd,3rd,...) %c 数字表示月份(1,2,3。。)
%e 数字形式表示月中的天数(1,2,3,4,5.....) %h 两位数字表示小时,12小时制(01,02。。)
%H 两位数字表示小数,24小时制(01,02..) %l 数字形式表示小时,12小时制(1,2。。)
%k 数字形式的小时,24小时制(1,2,3) %S和%s 两位数字表示秒(00, 01, 02。。)
%i 两位数字表示分钟(00,01,02) %a 一周中的星期缩写(Sun)
%W 一周中的星期名称(Sunday...)    
%w 以数字表示周中的天数(0=Sunday,1=Monday....)    
%j 以3位数字表示年中的天数(001,002...) %U 以数字表示年中的第几周,(1,2,3。。)其中Sunday为周中第一天
%u 以数字表示年中的第几周,(1,2,3。。)其中Monday为周中第一天    
%T 24小时制 %r 12小时制
%p AM或PM %% 表示%

举例如下:

 SELECT DATE_FORMAT(NOW(), '%H:%i:%s');
 -- 返回结果:09:58:12
函数 功能 返回格式
GET_FORMAT(date_type,format_type) 返回日期字符串的显示格式  

format_type取值如下:

MySQL日期时间函数知识汇总

举例如下:

 SELECT GET_FORMAT(DATE, 'USA');
 -- 返回:%m.%d.%Y

到此这篇关于MySQL日期时间函数知识汇总的文章就介绍到这了,更多相关MySQL日期时间函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
详解MySQL InnoDB存储引擎的内存管理
Apr 08 MySQL
JDBC连接的六步实例代码(与mysql连接)
May 12 MySQL
如何用Navicat操作MySQL
May 12 MySQL
mysql 8.0.24版本安装配置方法图文教程
May 12 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
Mysql Online DDL的使用详解
May 20 MySQL
详解MySQL集群搭建
May 26 MySQL
探究Mysql模糊查询是否区分大小写
Jun 11 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
MySQL索引 高效获取数据的数据结构
May 02 MySQL
MySQL详解进行JDBC编程与增删改查方法
Jun 16 MySQL
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
Sep 23 MySQL
MySQL优化常用的19种有效方法(推荐!)
MySQL多表查询机制
MySQL高级进阶sql语句总结大全
Mar 16 #MySQL
一条慢SQL语句引发的改造之路
MySQL中一条update语句是如何执行的
关于k8s环境部署mysql主从的问题
Mar 13 #MySQL
MYSQL如何查看进程和kill进程
Mar 13 #MySQL
You might like
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
打开电脑上的QQ的python代码
2013/02/10 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
python基于opencv 实现图像时钟
2021/01/04 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
心得体会开头
2014/01/01 职场文书
写自荐信的注意事项
2014/03/09 职场文书
升旗仪式主持词
2014/03/19 职场文书
个人担保书格式范文
2014/05/12 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
党员倡议书
2015/01/19 职场文书
廉洁自律证明
2015/06/24 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript