MySQL 日期函数

mysql 日期函数

获取月份、星期、星期数、天数等

函数 用法
YEAR(date) / MONTH(date) / DAY(date) 返回具体的日期值
HOUR(time) / MINUTE(time) /SECOND(time) 返回具体的时间值
MONTHNAME(date) 返回月份:January,...
DAYNAME(date) 返回星期几:MONDAY,TUESDAY.....SUNDAY
WEEKDAY(date) 返回周几,注意,周1是0,周2是1,。。。周日是6
QUARTER(date) 返回日期对应的季度,范围为1~4
WEEK(date) , WEEKOFYEAR(date) 返回一年中的第几周
DAYOFYEAR(date) 返回日期是一年中的第几天
DAYOFMONTH(date) 返回日期位于所在月份的第几天
DAYOFWEEK(date) 返回周几,注意:周日是1,周一是2,。。。周六是7
SELECT DAY(date) AS day,count(*) # 获取具体的日
FROM question_practice_detail
WHERE MONTH(date) = 8  # 获取具体的月份
GROUP BY day;

计算日期和时间的函数

函数 用法 案例
DATE_ADD(datetime, INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
函数从日期减去指定的时间间隔 DATE_SUB(date,INTERVAL 1 day) data为2022-1-13,函数的返回值为2022-1-14
DATE_SUB(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type)
函数从日期减去指定的时间间隔 DATE_SUB(date,INTERVAL 1 day) data为2022-1-13,函数的返回值为2022-1-12

其中的type取值

IMESTAMPDIFF()/DATEDIFF()/timediff() 计算时期时间之间的差值

函数 作用 说明
TIMESTAMPDIFF(interval,datetime1,datetime2) 计算datetime2-datetime1的差值换算成interval单位 interval可选:FRAC_SECOND毫秒/SECOND秒/MINUTE分钟/HOUR小时/DAY天/WEEK星期/MONTH月/QUARTER季度/YEAR年
DATEDIFF(datetime1,datetime2) 返回值是datetime1-datetime2相差的天数,不能定位到小时、分钟和秒。
TIMEDIFF(time1,time2) 返回time1-time2两个时间相减得到的差值
select TIMESTAMPDIFF(DAY, '2018-03-20 23:59:00', '2018-03-22 00:00:00') # 1
select TIMESTAMPDIFF(HOUR, '2018-03-20 09:00:00', '2018-03-22 10:00:00') # 49
select datediff('2018-03-22 09:00:00', '2018-03-20 07:00:00'); # 2
SELECT TIMEDIFF('2018-05-21 14:51:43','2018-05-19 12:54:43');# 2 days, 1:57:00
posted @ 2022-01-24 21:15  rananie  阅读(73)  评论(0编辑  收藏  举报