【编程小白必看】MySQL 日期类型转换与判断操作秘籍🔥一文全掌握
文章目录
前言
嘿,小伙伴们!今天我们要一起走进 MySQL 的日期类型世界,重点介绍日期类型的转换和判断方法。无论你是初学者还是有一定经验的开发者,都能从中获得一些有用的知识。跟着我一起,轻松掌握这些基础知识吧!
一、MySQL 日期类型转换
1.获取昨天的当前时间
获取昨天的当前时间,可以使用 CURDATE() 函数结合 INTERVAL 关键字。
下面是从昨天的0点开始的
代码如下(示例):
SELECT CURDATE() - INTERVAL 1 DAY AS yesterday;
如果使用的是NOW()函数,结果是昨天的当前时间。
代码如下(示例):
SELECT NOW()-INTERVAL 1 DAY AS yesterday;
2.获取本年的时间
获取本年的起始时间和结束时间,可以使用 DATE_FORMAT() 函数。
代码如下(示例):
SELECT
DATE_FORMAT(CURDATE(), '%Y-01-01') AS year_start,
DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 1 YEAR), '%Y-01-01') - INTERVAL 1 DAY AS year_end;
3.获取前几分钟几小时的时间
获取当前时间前几分钟或几小时的时间,可以使用 NOW() 函数结合 INTERVAL 关键字。
代码如下(示例):
SELECT
NOW() - INTERVAL 5 MINUTE AS five_minutes_ago,
NOW() - INTERVAL 2 HOUR AS two_hours_ago;
4.获取前几周几月的时间
获取当前时间前几周或几个月的时间,可以使用 NOW() 函数结合 INTERVAL 关键字。
代码如下(示例):
SELECT
NOW() - INTERVAL 2 WEEK AS two_weeks_ago,
NOW() - INTERVAL 3 MONTH AS three_months_ago;
二、日期判断
1.判断日期是否在某个区间内
判断某个日期是否在指定的区间内,可以使用 BETWEEN 关键字。
代码如下(示例):
SELECT
'2023-01-01' BETWEEN '2023-01-01' AND '2023-01-31' AS in_range;
2.判断日期是否在本周内
判断某个日期是否在本周内,可以使用 DAYOFWEEK() 函数。
代码如下(示例):
SELECT
CASE
WHEN DAYOFWEEK('2023-01-04') BETWEEN 2 AND 6 THEN 'In Week'
ELSE 'Not In Week'
END AS week_check;
3.判断日期是否在本月内
判断某个日期是否在本月内,可以使用 MONTH() 函数。
代码如下(示例):
SELECT
CASE
WHEN MONTH('2023-01-04') = MONTH(CURDATE()) THEN 'In Month'
ELSE 'Not In Month'
END AS month_check;
4.判断日期是否在本年内
判断某个日期是否在本年内,可以使用 YEAR() 函数。
代码如下(示例):
SELECT
CASE
WHEN YEAR('2023-01-04') = YEAR(CURDATE()) THEN 'In Year'
ELSE 'Not In Year'
END AS year_check;
5.判断日期是否在本年内且在最近几天内
判断某个日期是否在本年内且在最近几天内,
可以使用 YEAR() 函数结合 CURDATE() 和 INTERVAL 关键字。
代码如下(示例):
SELECT
CASE
WHEN YEAR(create_time) = YEAR(CURDATE()) AND create_time > DATE_FORMAT(CURDATE(), '%Y-01-01') THEN 'In Year'
ELSE 'Not In Year'
END AS year_check;
SELECT
CASE
WHEN update_time >= CURDATE() - INTERVAL 1 DAY THEN 'Recent Day'
ELSE 'Not Recent Day'
END AS recent_day_check;
SELECT
CASE
WHEN update_time >= CURDATE() - INTERVAL 2 DAY THEN 'Recent Two Days'
ELSE 'Not Recent Two Days'
END AS recent_two_days_check;
6.判断日期是否在最近几小时内
判断某个日期是否在最近几小时内,可以使用 NOW() 函数结合 INTERVAL 关键字。
代码如下(示例):
SELECT
CASE
WHEN update_time >= NOW() - INTERVAL 1 HOUR THEN 'Recent Hour'
ELSE 'Not Recent Hour'
END AS recent_hour_check;
SELECT
CASE
WHEN update_time >= NOW() - INTERVAL 2 HOUR THEN 'Recent Two Hours'
ELSE 'Not Recent Two Hours'
END AS recent_two_hours_check;
7.按月份分组
按月份分组,可以使用 DATE_FORMAT() 函数。
代码如下(示例):
SELECT
DATE_FORMAT(update_time, '%Y-%m-%d %H') AS axis
FROM your_table
GROUP BY DATE_FORMAT(update_time, '%Y-%m-%d %H');
SELECT
DATE_FORMAT(t.end_time, '%Y-%m') AS month
FROM your_table t
GROUP BY DATE_FORMAT(t.end_time, '%Y-%m');
总结
以上就是 MySQL 中日期类型的转换和判断方法。通过这些方法,我们可以更灵活地处理日期相关的数据。如果还有不清楚的地方,欢迎留言提问哦!
希望这篇笔记对你有所帮助,快去试试吧!