#MySql MySql 计算今年有多少天周末(周六、日)
#MySql MySql 计算今年有多少天周末(周六、日)
- 思路
- 最后结果
- 总结
思路
假设今天是2022-07-07 星期四
1. 今天是属于今年的第几周
select WEEKOFYEAR(CURDATE())
输出:
25
2. 今天是星期几,如果是星期1~5,就要25*2-2=48天,也就是本周不算进去(-2),如果是星期六,则是少1天(-1),如果是周日就是本周算进去,语句:
SELECTCASE
WHEN (WEEKDAY(CURDATE()))+1 - 5 <= 0 THEN- 2
WHEN (WEEKDAY(CURDATE())) +1 = 6 THEN- 1
ELSE0
END
输出
-2
注意:
DAYOFWEEK(date)函数 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)
WEEKDAY(date)函数 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)
3.今年的第一天是今年的第一周吗?
2022-01-01是星期6,是去年的最后一周,2022-01-03~2022-01-10才是今年的第一周,当且仅当1月1号刚好是周一的时候1月1号才是今年的第一周,那么如果1月1号是星期2 ~ 6天数就要+2,如果是星期7 则+1
注:元旦开始的第一个星期一开始的一周为政治经济上的第一周
##今年的第一天
SELECTDATE_SUB(CURDATE(),INTERVAL dayofyear(CURDATE()) - 1 DAY)
输出:
2022-01-01
##今年的第一天是第几周
SELECT
WEEKOFYEAR(DATE_SUB(CURDATE(),INTERVAL dayofyear(CURDATE()) - 1 DAY))
输出:
52
## 这是今年第一天的要考虑的
SELECTCASE
WHEN (WEEKOFYEAR(DATE_SUB(CURDATE(),INTERVAL dayofyear(CURDATE()) - 1 DAY)) != 1)
AND (WEEKDAY(CURDATE()) + 1 <= 6) THEN+ 2
WHEN (WEEKOFYEAR(DATE_SUB(CURDATE(),INTERVAL dayofyear(CURDATE()) - 1 DAY)) != 1)
AND (WEEKDAY(CURDATE()) + 1 = 7) THEN1
ELSE0
END
输出:
2
最后结果
SELECTWEEKOFYEAR(CURDATE()) * 2 + (SELECTCASEWHEN (WEEKDAY(CURDATE())) + 1 - 5 <= 0 THEN- 2WHEN (WEEKDAY(CURDATE())) + 1 = 6 THEN- 1ELSE0END) + (SELECTCASEWHEN (WEEKOFYEAR(DATE_SUB(CURDATE(),INTERVAL dayofyear(CURDATE()) - 1 DAY)) != 1)AND (WEEKDAY(CURDATE()) + 1 <= 6) THEN+ 2WHEN (WEEKOFYEAR(DATE_SUB(CURDATE(),INTERVAL dayofyear(CURDATE()) - 1 DAY)) != 1)AND (WEEKDAY(CURDATE()) + 1 = 7) THEN1ELSE0END)
输出:
54
总结
这个只是按思路去做出来的,太长了,肯定要优化的,那就未完待续
#MySql MySql 计算今年有多少天周末(周六、日)相关推荐
- mysql怎么计算某个字段重复的个数_2020最新版MySQL数据库面试题(一)
点击上方" 码农编程进阶笔记 ",选择"置顶或者星标" 文末有干货,每天定时与您相约! 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久 ...
- mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句
mysql取字段逗号分隔的第一个 cover字段为:(admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B) 取逗号分隔第一个词 ...
- Mysql语句计算文本字数_使用SQL确定文本字段的字数统计
MySQL的文本处理功能不足以满足您的需求.存储功能是一个选项,但可能会很慢.在MySQL中处理数据的最佳选择是添加一个用户定义的函数.无论如何,如果要构建MySQL的较新版本,也可以添加一个nati ...
- mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法
mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: ...
- 关于mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止问题
背景:由于某些原因,服务器需要重启一下,结果重启完就出现这个mysql本地计算机上的MySQL服务启动后停止.某些服务在未由其他服务或程序使用时将自动停止问题,一想到平时偷懒没有做数据库自动备份,当时 ...
- 【解决】mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止
最近写一个Java Web的项目,需要用到 mysql 数据库,在计算机管理中启动时,发现 mysql 报错:mysql本地计算机上的MySQL服务启动后停止.某些服务在未由其他服务或程序使用时将自动 ...
- MySql按周,按月,按日分组统计数据、日期计算。并统计环比、同比
MySql按周,按月,按日分组统计数据 <!-- 按日查询 --> SELECT DATE_FORMAT(created_date,'%Y-%m-%d') as time,sum(mone ...
- 计算请假工时,去除周六周末的时间
做项目时,写到一个请假的模块,需要计算请假工时,去除周六周末,时间为一天8H,8:00-17:00,中午12:00-13:00 为午休时间 function getLeaveTime(startDat ...
- mysql数据库计算全部女生_mysql数据库基础操作大全(小白必看)
一.概念: 数据: data 数据库: DB 数据库管理系统:DBMS 数据库系统:DBS MySQL:数据库 mysql:客户端命令(用来连接服务或发送sql指令) SQL:结构化查询语言 ,其中M ...
最新文章
- TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理
- Leetcode 200. 岛屿数量 解题思路及C++实现
- 【树链剖分】洛谷树(P3401)
- aspx repeater 用法_ASP.NET-----Repeater数据控件的用法总结
- eclipse设置内存参数 堆内存溢出
- Spark的测量系统MetricsSystem
- [Ubuntu] 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
- 数据库表TreeView树的快速生成
- 菜鸟到高手:SQL开发进阶常用精妙语句
- 黑马程序员2022年最新软件测试学习路线
- Java之UUID生成
- 多元函数微分法及其应用
- Git Gui界面出现中文乱码的设置方法
- 【MV】恋爱サーキュレーション 马琴舞蹈完整版
- 分分钟上手 VS Code
- 【零基础系列】K-Means聚类算法
- 织梦dedecms 忘记管理员后台密码的解决技巧
- python色卡_Python可视化|08-Palettable库中颜色条Colormap(四)
- 开启Intel VT-x
- 计算机室走廊文化内容,寝室走廊文化设计方案