mysql 常见日期函数用法
-- 获取当前日期 NOW()
输入:SELECT NOW();
输出:2020-07-25 14:38:39
-- 获取当前日期的年 YEAR(date)
输入:SELECT YEAR(NOW());
输出:2020
-- 获取当前月份 MONTH(date)
输入:SELECT MONTH(NOW());
输出:7
-- 获取当前日期 DAY(date)
输入:SELECT DAY(NOW());
输出:25
-- 获取本周为今年第多少周 WEEKOFYEAR(date)
输入:SELECT WEEKOFYEAR(NOW())
输出:30
-- 获取当前时间为星期 DAYOFWEEK(date)
输入:SELECT DAYOFWEEK(NOW())
输出:7
注意:周五为6,周六为7,周日为1,周一为2
-- 获取当前星期英文名称 DAYNAME(date)
输入:SELECT DAYNAME(NOW())
输出:Saturday
应用假设
- YYYY年MM月中,计算在周*购买商品用户的总数量
- 获取周末商品的总销量
- 其他各种组合
日期数据类型有5种
类型 | time | date | year | datetime | timestamp |
---|
格式 | HH:MM:SS | YYYY-MM-DD | YYYY | YYYY-MM-DD HH:MM:SS | YYYYMMDD HHMMSS |
实用函数
-- 返回某天后5天的日期 DATE_ADD(date,INTERVAL expr unit)
输入:SELECT DATE_ADD(CURRENT_DATE, INTERVAL 3 day)
输出:2020-07-28
-- 返回某天前5天的日期 DATE_SUB(date,INTERVAL expr unit)
输入:SELECT DATE_SUB(current_date,interval 5 day)
输出:2020-07-20
-- 返回两天所差天数 DATEDIFF(expr1,expr2)
输入:SELECT DATEDIFF(current_date, '2020-06-20')
输出:35
举例:大日期放在前面,结果才为正数
计算今天和12月31日相差几天
SELECT DATEDIFF('2020-12-31',CURRENT_DATE)
计算今天和2020/01/01相差几天
SELECT DATEDIFF(current_date, '2020-01-01');
-- 时间格式化 DATE_FORMAT(date,format)
输入:SELECT DATE_FORMAT(current_date, '%m/%Y/%d')
输出:07/2020/25
/ 可以换成其他符号,例如- 等,还有很多格式不一一列举了