【编程小白必看】MySQL 日期类型转换与判断操作秘籍一文全掌握

【编程小白必看】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 中日期类型的转换和判断方法。通过这些方法,我们可以更灵活地处理日期相关的数据。如果还有不清楚的地方,欢迎留言提问哦!
希望这篇笔记对你有所帮助,快去试试吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值