MySQL数据库的日期时间类型的字段做条件时,有时需要获取日期时间类型的字段部分的值,这时候就需要使用到日期时间函数,常用的日期时间函数有year(date),month(date),date(expr),hour(time),minute(time)和second(time)等函数。
一 YEAR函数
YEAR(date):获取日期中的年份
===> select YEAR('2023-12-06 17:21:15')
<=== 2023
YEARWEEK(date):获取日期属于哪一年中的第几周,外国人是按周日为一周的第一天,2024年1月7日是2024年的第一周的第一天
===> select YEARWEEK('2024-01-06 17:21:15')
<=== 202353
2024年1月6日属于2023年的第53周
===> select YEARWEEK('2024-01-07 17:21:15')
<=== 202401
2024年1月7日属于2024年的第1周
YEARWEEK(date, mode):获取日期属于哪一年中的第几周,参数mode指定周几为一周的第一天,mode可取值范围是(1-7);
===> select YEARWEEK('2024-01-01 17:21:15', 1)
<=== 202401
指定周一为一周的第一天,2024年1月1日属于2024年的第1周
WEEKOFYEAR(date):获取日期属于一年中的第几周,记一年第一个周一的日期为第一周的开始;
===> select WEEKOFYEAR('2023-01-01 17:21:15')
<=== 52
===> select WEEKOFYEAR('2023-01-02 17:21:15')
<=== 1
2023年1月2日是2023年一个周一的日期
DAYOFYEAR(date):获取当前日期是一年中的第几天;
===> select DAYOFYEAR('2024-01-01 17:21:15')
<=== 1
2024年1月1日是2024年的第一天
===> select DAYOFYEAR('2024-05-15 17:21:15')
<=== 136
2024年5月15日是2024年的第136天
二 MONTH函数
MONTH(date):获取当前月份
===> select MONTH('2022-12-07 12:10:11')
<=== 12
MONTHNAME(date):获取当前月份的名字
===> select MONTHNAME('2022-12-07 12:10:11')
<=== December
DAYOFMONTH(date):获取日期是月份的第几天
===> select DAYOFMONTH('2022-12-07 12:10:11')
<=== 7
三 DATE函数
DATE(expr):获取当前日期
===> select date('2022-12-07 12:10:11')
<=== 2022-12-07
DATEDIFF(expr1, expr2):第一个参数减去第二个参数,忽略时分秒,只计算两者相差的天数
===> select DATEDIFF('2022-12-07 12:10:11','2022-12-05 11:13:11')
<=== 2
DATE_ADD(date, INTERVAL expr unit):日期date加上时间单元间隔
unit的可选值:YEAR年份、MONTH月份、DAY日份、HOUR小时、MINUTE分钟和SECOND秒
===> select DATE_ADD('2023-12-06 17:21:15', INTERVAL 2 SECOND)
<=== 2023-12-06 17:21:17
DATE_SUB(date, INTERVAL expr unit):日期date减去时间单元间隔
===> select DATE_SUB('2023-12-06 17:21:15', INTERVAL 2 SECOND)
<=== 2023-12-06 17:21:13
DATE_FORMAT(date,format):按照指定格式输出日期时间, 指定格式可选值
%Y 年份(2023)
%y 年份(23)
%m 月份(01-12)
%c 月份(1-12)
%d 日份(01-31)
%e 日份(1-31)
%H 小时(00-23)
%h 小时(01-12)
%i 分钟(00-59)
%S 秒(00-59)
%s 秒(00-59)
%p AM或PM
===> select DATE_FORMAT('2023-12-06 17:21:15', '%s')
<=== 15
四 HOUR函数
HOUR(time):获取当前日期时间的第几小时
===> select HOUR('2022-12-07 12:10:11')
<=== 12
五 MINUTE函数
MINUTE(time):获取当前日期时间所在小时的第几分钟
===> select MINUTE('2022-12-07 12:10:11')
<=== 10
六 SECOND函数
SECOND(time):获取当前日期时间所在小时所在分钟的第几秒
===> select SECOND('2022-12-07 12:10:11')
<=== 11
MICROSECOND(expr):获取当前日期时间所在小时所在分钟所在秒的第几毫秒
===> select MICROSECOND('2022-12-07 12:10:11.102409')
<=== 102409