当前位置:网站首页>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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢

Go语学习笔记 - gorm使用 - 事务操作 Web框架Gin(十一)

mysql8.0.28 download and installation detailed tutorial, suitable for win11

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

MySQL函数(经典收藏)

KICAD 小封装拉线卡顿问题 解决方法

搭建zabbix监控及邮件报警(超详细教学)

WebShell connection tools (Chinese kitchen knife, WeBaCoo, Weevely) use

#{}和${}的区别

Chapter 11_Database Design Specifications

第二章——堆栈、队列
随机推荐
树链剖分-
Docker-compose安装mysql
leetcode 143. 重排链表
【LeetCode】145.二叉树的后序遍历
剑指 Offer 14- I. 剪绳子
第11章_数据库的设计规范
IPIDEA的使用方式
第 304 场力扣周赛
很有意思的经历,很有意思的项目--文件夹对比工具
ReentrantLock工作原理
IPFS deployment and file upload (golang)
KICAD 小封装拉线卡顿问题 解决方法
DVWA之SQL注入
2022年最新一篇文章教你青龙面板拉库,拉取单文件,安装依赖,设置环境变量,解决没有或丢失依赖can‘t find module之保姆教程(附带几十个青龙面板脚本仓库)
AcWing 1053. 修复DNA 题解(状态机DP、AC自动机)
【LeetCode】1374. Generate a string with an odd number of each character
* Compare version numbers
centos安装mysql8
feign调用不通问题,JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r
【LeetCode】102.二叉树的层序遍历