本文主要是介绍MYSQL中日期加减(前一天、后一天等)以及格式化的函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 序言
- 日期的加减
- date_add和date_sub
- 日期的格式化
- date_format
- 日期的差值
- datediff
- timestampdiff
序言
最近在写定时任务,查询条件中反复的会使用时间区间作为筛选条件,难免的会碰到对日期的操作,如获取前一天、后一天、一周前、一个月前等,索性整理一下MYSQL中的相关函数
日期的加减
date_add和date_sub
语法为:date_add(date,interval expr type)、date_sub(date,interval expr type)
其中常用的type的类型有:second、minute、hour、day、month、year等
date_add是对日期的增加,如果天数为负数时,则表示对日期减少,
date_sub是对日期的减少,如果天数为负数时,则表示对日期增加
例如:
-- 获取日期 2020-04-07
curdate()
-- 获取日期加时间 2020-04-07 23:10:30
now()
-- 获取明天的日期 2020-04-08
date_add(curdate(),interval 1 day)
--或者
date_sub(curdate(),interval -1 day)
-- 获取明年的日期 2021-04-07
date_add(curdate(),interval 1 year)
-- 或者
date_sub(curdate(),interval -1 year)
日期的格式化
date_format
语法为:date_format(date,format),date 参数是合法的日期。format 规定日期/时间的输出格式。
常用的格式有:
格式 | 描述 |
---|---|
%Y | 年,4 位 |
%y | 年,2 位 |
%m | 月,数值(00-12) |
%M | 月名 |
%D | 带有英文前缀的月中的天 |
%d | 月的天,数值(00-31) |
%H | 小时 (00-23) |
%h | 小时 (01-12) |
%i | 分钟,数值(00-59) |
%S | 秒(00-59) |
%s | 秒(00-59) |
-- 格式化当前日期 2020-04-07 23:23:23
date_format(now(),'%Y-%m-%d %H:%i:%s' )
日期的差值
datediff
DATEDIFF(date1,date2) 返回起始时间 date1 和结束时间 date2 之间的天数(date2-date1,正负情况都存在)。date1 和 date2 为日期或 date-and-time 表达式,计算差值时只会计算日期的差值,单位为天。
-- 当前时间2020-04-08,差值为-2
SELECT DATEDIFF(NOW(),'2020-04-10')
-- 当前时间2020-04-08,差值为2
SELECT DATEDIFF(NOW(),'2020-04-06')
timestampdiff
语法为:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。
常用的值有:
- FRAC_SECOND。表示间隔是毫秒
- SECOND。秒
- MINUTE。分钟
- HOUR。小时
- DAY。天
- WEEK。星期
- MONTH。月
- QUARTER。季度
- YEAR。年
-- now()值为 2020-04-08 23:20:20
SELECT TIMESTAMPDIFF(DAY,NOW(),'2020-04-10 23:23:23')
-- 结果为2,相差两天,取整数
-- 其他单位同理
这篇关于MYSQL中日期加减(前一天、后一天等)以及格式化的函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!