通过多个列更新mysql表中的一系列行



我有一个包含年、月、日和请求列的表。我需要更新下表中的一个范围,该范围以year = 2022, month = 6, day = 7开始,以year = 2022, month = 9, day = 16结束。请求值必须为= 9,其插入取决于dow

year| month| day| dow|req|
----+------+----+----+---+
2022|  6   |  4 | sat| 5 |
2022|  6   |  5 | sun| 5 |
2022|  6   |  6 | mon| 5 |
2022|  6   |  7 | tue| 9 |
2022|  6   |  8 | wed| 9 |
2022|  6   |  9 | thu| 9 |
2022|  6   | 10 | fri| 9 |
---  ---  ---  ---  ---  
2022|  9   | 13 | tue| 9 |
2022|  9   | 14 | wed| 9 |
2022|  9   | 15 | thu| 9 |
2022|  9   | 16 | fri| 9 |
2022|  9   | 17 | sat| 3 |
2022|  9   | 18 | sun| 3 |
2022|  9   | 19 | mon| 3 |
---  ---  ---  ---  --- 

这是我的查询

x_req = 'mon'
query = "UPDATE `calendar` SET '%s' = '%s' WHERE year = '%s' AND (month BETWEEN '%s' AND '%s') AND dow = '%s' " %(request, nbr, year, s_month, e_month, x_req)
Functions.handleQuery(self, query)

但是这个查询也更新了6月3日以及11月23日和30日。如何使查询在选定的日期开始和结束

where (year,month,day) >= (2022,6,7) and (year,month,day) <= (2022,9,16)