当前位置:网站首页>MySQL中的时间函数
MySQL中的时间函数
2022-08-02 02:57:00 【emgexgb_sef】
目录
1. 获取系统当前时间
MySQL 版本为 5.7,详细的时间函数可以参考 MySQL 官方文档 在这里
1.1. 获取 YYYY-MM-DD HH:mm:ss
SELECT NOW(),CURRENT_TIMESTAMP(),SYSDATE(),CURRENT_TIMESTAMP;

NOW()返回当前日期和时间CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP都是NOW()函数的同义词NOW()在执行开始时值就得到了SYSDATE()返回函数执行的时间,一般情况下很少用到
1.2. 获取 YYYY-MM-DD
SELECT CURRENT_DATE,CURRENT_DATE(),CURDATE(),DATE(NOW());

CURDATE()返回当前日期CURRENT_DATE(),CURRENT_DATE都是CURDATE()的同义词DATE()提取日期或日期时间表达式的日期部分
1.3. 获取 HH:mm:ss
SELECT CURRENT_TIME,CURRENT_TIME(),CURTIME(),TIME(NOW());

CURTIME()返回当前时间CURRENT_TIME(),CURRENT_TIME都是CURTIME()的同义词TIME()提取传递的表达式的时间部分
2. 时间加减间隔函数
MySQL 中内置函数 DATE_ADD() 和 DATE_SUB() 能对指定的时间进行增加或减少一个指定的时间间隔,语法如下
DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
date是指定的日期INTERVAL为关键词expr是具体的时间间隔type是时间单位
注意:type 可以是复合型的,比如 YEAR_MONTH。如果 type 不是复合型的, DATE_ADD() 和 DATE_SUB() 其实可以通用,因为 expr 可以为一个负数。可用的 type 如下表
MICROSECOND
间隔单位:毫秒
SECOND
间隔单位:秒
MINUTE
间隔单位:分钟
HOUR
间隔单位:小时
DAY
间隔单位:天
WEEK
间隔单位:星期
MONTH
间隔单位:月
QUARTER
间隔单位:季度
YEAR
间隔单位:年
SECOND_MICROSECOND
复合型,间隔单位:秒、毫秒,expr可以用两个值来分别指定秒和毫秒
MINUTE_MICROSECOND
复合型,间隔单位:分、毫秒
MINUTE_SECOND
复合型,间隔单位:分、秒
HOUR_MICROSECOND
复合型,间隔单位:小时、毫秒
HOUR_SECOND
复合型,间隔单位:小时、秒
HOUR_MINUTE
复合型,间隔单位:小时分
DAY_MICROSECOND
复合型,间隔单位:天、毫秒
DAY_SECOND
复合型,间隔单位:天、秒
DAY_MINUTE
复合型,间隔单位:天、分
DAY_HOUR
复合型,间隔单位:天、小时
YEAR_MONTH
复合型,间隔单位:年、月
2.1. DATETIME 类型的加减
-- 给当前的时间日期增加一个月
SELECT DATE_ADD(NOW(),INTERVAL 1 MONTH), NOW();

-- 给当前的时间日期减少一个月
SELECT DATE_SUB(NOW(),INTERVAL 1 MONTH), NOW();

2.2. DATE 类型的加减
-- 给当前的日期增加 10 天
SELECT DATE_ADD(DATE(NOW()),INTERVAL 10 DAY), DATE(NOW());

-- 给当前的日期减少 10 天
SELECT DATE_SUB(DATE(NOW()),INTERVAL 10 DAY), DATE(NOW());

3. 两个时间的相减
3.1. DATE 类型相减
DATEDIFF(date1, date2) 减去两个日期,比较的是天数,与时间无关 date1 - date2
SELECT DATEDIFF('2013-01-13','2012-10-01');

SELECT DATEDIFF('2013-01-13 13:13:13','2012-10-01 16:16:16');

SELECT DATEDIFF('13:13:13','16:16:16');

3.2. TIMESTAMP 类型
TIMESTAMPDIFF(type, ts1, ts2) : 根据 type,计算两个时间 ts2 - ts1 相差多少天、月、年等
SELECT TIMESTAMPDIFF(DAY, '2013-01-13','2012-10-01');

SELECT TIMESTAMPDIFF(MONTH, '2013-01-13 13:13:13','2012-10-01 16:16:16');

SELECT TIMESTAMPDIFF(HOUR, '13:13:13','16:16:16');

MySQL 关于时间函数的官方文档:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- [LeetCode] 94. Inorder traversal of binary tree
- WebShell连接工具(中国菜刀、WeBaCoo、Weevely)使用
- Go语学习笔记 - gorm使用 - 表增删改查 Web框架Gin(八)
- 2022.8.1-----leetcode.1374
- Flask 报错:WARNING This is a development server. Do not use it in a production deployment
- 详解最强分布式锁工具:Redisson
- cadence landscape bindkey
- IPIDEA的使用方式
- 生成器知道鉴别器在无条件GANs中应该学习什么
- 微服务:微智能在软件系统的简述
猜你喜欢

Reasons and solutions for Invalid bound statement (not found)

CentOS7安装Oracle数据库的全流程

aws s3上传文件

DVWA安装教程(懂你的不懂·详细)

feign调用不通问题,JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r

mysql8.0.28下载和安装详细教程,适配win11

详解最强分布式锁工具:Redisson

“带薪划水”偷刷阿里老哥的面经宝典,三次挑战字节,终成正果

PyTorch(六)——PyTorch可视化

MySQL8--Windows下使用压缩包安装的方法
随机推荐
暴力破解全攻略
“带薪划水”偷刷阿里老哥的面经宝典,三次挑战字节,终成正果
Difference between #{} and ${}
MySQL8.0.26安装配置教程(windows 64位)
pyqt上手体验
aws s3 upload file
AcWing 1053. Repair DNA problem solution (state machine DP, AC automata)
ROS2自学笔记:launch文件完整编写流程
启发式合并、DSU on Tree
消息队列经典十连问
7-43 字符串关键字的散列映射 (25 分) 谜之测试点
Tree Chain Segmentation-
Duplicate entry ‘XXX‘ for key ‘XXX.PRIMARY‘解决方案。
非稳压 源特电子 隔离电源模块芯片 5W VPS8504B 24V
JSP Webshell 免杀
第 304 场力扣周赛
7、MySQL Workbench 导出导入数据库
【LeetCode】206.反转链表
就瞎写=感想
CentOS7安装Oracle数据库的全流程