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令人咋舌的隐式转换
Apr 05 MySQL
MySQL入门命令之函数-单行函数-流程控制函数
Apr 05 MySQL
mysql升级到5.7时,wordpress导数据报错1067的问题
May 27 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
Aug 23 MySQL
MySQL空间数据存储及函数
Sep 25 MySQL
MySQL面试题讲解之如何设置Hash索引
Nov 01 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
MYSQL如何查看操作日志详解
May 30 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 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
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
原生js实现3D轮播图
2020/03/21 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python基于socket实现网络广播的方法
2015/04/29 Python
深入浅析Python字符编码
2015/11/12 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
python如何实现内容写在图片上
2018/03/23 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
flask-restful使用总结
2018/12/04 Python
Python魔法方法详解
2019/02/13 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
Python双链表原理与实现方法详解
2020/02/22 Python
实例代码讲解Python 线程池
2020/08/24 Python
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
C#面试常见问题
2013/02/25 面试题
国际会议邀请函范文
2014/01/16 职场文书
接待员岗位责任制
2014/02/10 职场文书
鲜花方阵解说词
2014/02/13 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
教师节活动主持词
2014/04/02 职场文书
付款委托书范本
2014/04/04 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
员工工作及收入证明
2014/10/28 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python