mysql firstday_MySQL 计算本月的第一个和最后一个周一

这篇博客介绍了如何在MySQL中计算当前月的第一个和最后一个星期一的日期,通过使用adddate函数和dayofweek函数,结合条件判断,得出本月的first_monday和last_monday。
摘要由CSDN通过智能技术生成

备注:测试数据库版本为MySQL 8.0

一.需求:

计算当前月的第一个星期一及最后一个星期一的日期。

二.解决方案

这里选用了Monday和当前月,也可以将该解决方案应用于其他日子和月份。

由于每个相同的周内日期的间隔都是7天,所以知道第一个后,加7就能知道第二个,加14天就能知道第三个。

同样,如果制动啊某个月的最后一个指定的周期内日期,则减7就能得到第三个,再减7就能得到第二个。

使用函数adddate,找到当月的第一天。

得到当前月的第一天之后,可以使用简单的算法和表示星期几的数学值(星期日-星期六分别对应1-7),

以获得当前月的第一个和最后一个星期一:

select first_monday,

case month(adddate(first_monday,28))

when mth then adddate(first_monday,28)

else adddate(first_monday,21)

end last_monday

from (

select case sign(dayofweek(dy) -2)

when 0 then dy

when -1 then adddate(dy,abs(dayofweek(dy) -2))

when 1 then adddate(dy,(7-(dayofweek(dy) -2)))

end first_monday,

mth

from (

select adddate(adddate(current_date,-day(current_date)),1) dy,

month(current_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种开源的关系型数据库管理系统,被广泛应用于Web应用程序的后台数据存储和管理。首次使用MySQL时,可以进行以下几个步骤: 1. 安装MySQL:首先需要下载并安装MySQL数据库服务器。可以从MySQL官方网站下载适合自己操作系统的安装包,并按照安装向导进行安装。 2. 启动MySQL服务:安装完成后,需要启动MySQL服务。在Windows系统中,可以在服务列表中找到MySQL服务并启动;在Linux系统中,可以使用命令行启动MySQL服务。 3. 连接到MySQL服务器:使用MySQL提供的客户端工具(如MySQL Shell、MySQL Workbench等)或命令行工具(如mysql命令)连接到MySQL服务器。需要提供正确的主机名、端口号、用户名和密码。 4. 创建数据库:连接到MySQL服务器后,可以使用SQL语句创建新的数据库。例如,可以使用以下语句创建一个名为"first_Day"的数据库: ``` CREATE DATABASE first_Day; ``` 5. 使用数据库:创建数据库后,可以使用以下语句选择要使用的数据库: ``` USE first_Day; ``` 6. 创建表:在选定的数据库中,可以使用SQL语句创建表格来存储数据。例如,可以使用以下语句创建一个名为"users"的表格: ``` CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT ); ``` 7. 插入数据:在创建表格后,可以使用INSERT语句向表格中插入数据。例如,可以使用以下语句向"users"表格中插入一条记录: ``` INSERT INTO users (name, age) VALUES ('John', 25); ``` 8. 查询数据:可以使用SELECT语句从表格中查询数据。例如,可以使用以下语句查询"users"表格中的所有记录: ``` SELECT * FROM users; ``` 9. 更新数据:使用UPDATE语句可以更新表格中的数据。例如,可以使用以下语句将"users"表格中id为1的记录的age字段更新为30: ``` UPDATE users SET age = 30 WHERE id = 1; ``` 10. 删除数据:使用DELETE语句可以删除表格中的数据。例如,可以使用以下语句删除"users"表格中id为1的记录: ``` DELETE FROM users WHERE id = 1; ``` 以上是MySQL的一些基本操作,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值