当前位置: 首页 > news >正文

二百七十八、ClickHouse——将本月第一天所在的那一周视为第一周,无论它是从周几开始的,查询某个日期是本月第几周

一、目的

ClickHouse指标表中有个字段week_of_month,含义是这条数据属于本月第几周。

而且将本月第一天所在的那一周视为第一周,无论它是从周几开始的。比如2024-12-01是周日,即12月第一周。而2024-12-02是周一,即12月第二周

二、文心一言

文心一言的代码有点问题

三、SQL语句

selectday,toDate(concat(toString(toYear(day)), '-', lpad(toString(toMonth(day)), 2, '0'), '-01')) as first_day_of_month ,DAYOFMONTH(day) - 1 AS days_since_first_day,toDayOfWeek(first_day_of_month) AS first_day_of_week,(7 - (first_day_of_week - 1) % 7) AS days_in_first_week,CASEWHEN days_since_first_day < days_in_first_week THEN 1WHEN days_since_first_day >= days_in_first_week  and days_since_first_day < days_in_first_week+7  THEN 2WHEN days_since_first_day >= days_in_first_week  and days_since_first_day < days_in_first_week+14  THEN 3WHEN days_since_first_day >= days_in_first_week  and days_since_first_day < days_in_first_week+21  THEN 4WHEN days_since_first_day >= days_in_first_week  and days_since_first_day < days_in_first_week+28  THEN 5WHEN days_since_first_day >= days_in_first_week  and days_since_first_day < days_in_first_week+35  THEN 6END AS week_of_month
from hurys_jw.tb_week_of_month
group by day
;
  • first_day_of_month 计算本月的第一天。
  • days_since_first_day 计算从本月第一天到目标日期之间的天数差。
  • first_day_of_week 获取本月第一天是周几。
  • days_to_first_monday 计算从本月第一天到第一个周一之间的天数(如果第一天不是周一)

四、验证查询结果

和11月日历一一验证,没问题,搞定!

http://www.lryc.cn/news/497701.html

相关文章:

  • JVM八股文精简
  • 深入解析CMake中的find_package()命令:工作原理及实际应用示例
  • 使用数据层进行数据生命周期管理
  • Kubernetes架构原则和对象设计
  • 响应式编程一、Reactor核心
  • uniapp+vue3+ts请求接口封装
  • 【计算机网络】实验4:生成树协议STP的功能以及虚拟局域网VLAN
  • 基于Matlab BP神经网络的电力负荷预测模型研究与实现
  • java 21 多线程
  • Rust学习笔记_07——枚举和范围
  • 40分钟学 Go 语言高并发:服务性能调优实战
  • Windows通过指令查看已安装的驱动
  • Windows 11 如何配置node.js
  • AWTK fscript 中的 串口 扩展函数
  • yolov11剪枝
  • 智慧地图聚合(LockMap)标注系统开发说明文档
  • 「Mac畅玩鸿蒙与硬件36」UI互动应用篇13 - 数字滚动抽奖器
  • cuda12.1版本的pytorch环境安装记录,并添加到jupyter和pycharm中
  • Linux: network: nic: mellanox MRU初现
  • 深入理解红黑树的底层逻辑
  • 【数据结构】手搓链表
  • ThinkPHP场景动态验证
  • 在M3上面搭建一套lnmp环境
  • 【C++笔记】二叉搜索树
  • Fork/Join框架简介
  • Java项目实战II基于微信小程序的电子竞技信息交流平台的设计与实现(开发文档+数据库+源码)
  • Mysql读写分离分库分表
  • B站狂神说--springboot项目学习(新建一个springboot项目)
  • eltable el-table 横向 滚动条常显
  • centos8 mysql 主从复制