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