MySQL 如何在 MYSQL 中获取上周的星期五

MySQL 如何在 MYSQL 中获取上周的星期五

在本文中,我们将介绍如何在 MySQL 中获取上周的星期五。

阅读更多:MySQL 教程

使用WEEKDAY函数和DATE_SUB函数

MySQL 中的WEEKDAY函数返回指定日期的工作日编号,星期一为0,星期二为1,以此类推,星期日为6。我们可以利用这个函数结合DATE_SUB函数来获取上周的星期五。

下面是一个示例查询语句:

SELECT DATE_SUB(CURDATE(), INTERVAL 7 + (WEEKDAY(CURDATE()) + 2) % 7 DAY) AS last_friday;
SQL

在上面的查询语句中,我们使用了CURDATE函数获取当前日期,并用WEEKDAY函数获取当前日期的工作日编号。然后使用DATE_SUB函数将当前日期减去一个星期再加上当前日期的工作日编号的余数,即可得到上周的星期五。

例如,如果今天是2022年11月10日(星期四),上面的查询语句将返回2022年11月4日(星期五)。

使用WEEKDAY函数和SUBDATE函数

除了DATE_SUB函数外,我们还可以使用SUBDATE函数来实现相同的效果。SUBDATE函数与DATE_SUB函数类似,都可以用于对日期进行减法运算。

下面是使用SUBDATE函数的示例查询语句:

SELECT SUBDATE(CURDATE(), INTERVAL (WEEKDAY(CURDATE()) + 7 - 5) % 7 DAY) AS last_friday;
SQL

在上面的查询语句中,我们使用了CURDATE函数获取当前日期,并用WEEKDAY函数获取当前日期的工作日编号。然后通过计算当前日期的工作日编号与5(星期五的工作日编号)之间的差值,并取余数,再用7减去这个余数,即可得到上周的星期五。

例如,如果今天是2022年11月10日(星期四),上面的查询语句将返回2022年11月4日(星期五)。

使用DAYOFWEEK函数和DATE_SUB函数

MySQL 中的DAYOFWEEK函数返回指定日期的星期几编号,星期日为1,星期一为2,以此类推,星期六为7。我们可以利用这个函数结合DATE_SUB函数来获取上周的星期五。

下面是一个使用DAYOFWEEK函数的示例查询语句:

SELECT DATE_SUB(CURDATE(), INTERVAL (DAYOFWEEK(CURDATE()) + 2 - 6) % 7 DAY) AS last_friday;
SQL

在上面的查询语句中,我们使用了CURDATE函数获取当前日期,并用DAYOFWEEK函数获取当前日期的星期几编号。然后通过计算当前日期的星期几编号与6(星期五的星期几编号)之间的差值,并取余数,即可得到上周的星期五。

例如,如果今天是2022年11月10日(星期四),上面的查询语句将返回2022年11月4日(星期五)。

使用DATE_FORMAT函数和其他函数

除了上述方法外,我们还可以使用DATE_FORMAT函数结合其他函数来获取上周的星期五。

下面是一个示例查询语句:

SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 7 DAY), '%Y-%m-%d') AS last_saturday;
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '%Y-%m-%d') AS last_sunday;
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '%Y-%m-%d') AS last_monday;
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '%Y-%m-%d') AS last_tuesday;
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '%Y-%m-%d') AS last_wednesday;
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '%Y-%m-%d') AS last_thursday;
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY),'%Y-%m-%d') AS last_friday;
SQL

在上面的查询语句中,我们使用了DATE_SUB函数来获取上周对应的日期,并通过DATE_FORMAT函数将日期以指定的格式(’%Y-%m-%d’)显示出来。通过调整DATE_SUB函数中的参数,我们可以获取上周的其他工作日。

例如,如果今天是2022年11月10日(星期四),上面的每个查询语句将分别返回2022年11月5日(星期六)、2022年11月6日(星期日)、2022年11月7日(星期一)、2022年11月8日(星期二)、2022年11月9日(星期三)、2022年11月10日(星期四)。

总结

通过使用MySQL中的函数,我们可以轻松地获取上周的星期五。以上介绍了使用WEEKDAY函数和DATE_SUB函数、WEEKDAY函数和SUBDATE函数、DAYOFWEEK函数和DATE_SUB函数以及DATE_FORMAT函数结合其他函数的方法。根据自己的需求,选择合适的方法即可实现获取上周星期五的功能。希望本文对你理解和使用MySQL中日期函数有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册