Clickhouse获取本周的最后一天、本月的最后一天

文章目录

  • Clickhouse获取本周的最后一天、本月的最后一天
    • 获取本周的最后一天
    • 本月的最后一天

Clickhouse官网日期函数:

https://clickhouse.com/docs/zh/sql-reference/functions/date-time-functions/#to-unix-timestamp

获取本周的最后一天

在官网给出的日期函数中,给出了计算指定日期所在周的第一天(周一):

toMonday()

将Date或DateTime向前取整到本周的星期一。 返回Date类型。

比如当前日期:

select toMonday(toDate('2022-12-08'));┌─toMonday(toDate('2022-12-08'))─┐
│                     2022-12-05 │
└────────────────────────────────┘

返回指定日期所在周的周一的日期

获取到指定日期所在周的最后一天的日期(周日)

date_add(DAY, 7-toDayOfWeek(toDate('2022-12-08')), toDate('2022-12-08'))┌─plus(toDate('2022-12-08'), toIntervalDay(minus(7, toDayOfWeek(toDate('2022-12-08')))))─┐
│                                                                             2022-12-11 │
└────────────────────────────────────────────────────────────────────────────────────────┘

核心思想就是利用toDayOfWeek方法计算出指定所在周的第几天,然后算出到周日的差值,再用date_add方法加上这个差值,就是当前当前日期所在周的周日的日期。

本月的最后一天

在官网给出的日期函数中,给出了计算指定日期所在月的第一天:

toStartOfMonth()

将Date或DateTime向前取整到本月的第一天。 返回Date类型。

比如当前日期:

select toStartOfMonth(toDate('2022-12-08'));┌─toStartOfMonth(toDate('2022-12-08'))─┐
│                           2022-12-01 │
└──────────────────────────────────────┘

那么如何获取到本月的最后一天呢?

select date_sub(DAY, 1, toStartOfMonth(date_add(MONTH, 1, toDate('2022-12-08'))))┌─minus(toStartOfMonth(plus(toDate('2022-12-08'), toIntervalMonth(1))), toIntervalDay(1))─┐
│                                                                              2022-12-31 │
└─────────────────────────────────────────────────────────────────────────────────────────┘

核心思想就是,先利用date_add方法计算出当前日期的下一个月所在的日期,然后利用toStartOfMonth方法算出下个月的月初,再利用date_sub方法将下个月月初的日期-1,就得到本月的最后一天所在的日期了。

注意,这里,如果下一个月的日期不存在,比如date_add(MONTH, 1, toDate('2022-10-31'));,11月不存在31号,只会得到2022-11-30:

select date_add(MONTH, 1, toDate('2022-10-31'));┌─plus(toDate('2022-10-31'), toIntervalMonth(1))─┐
│                                     2022-11-30 │
└────────────────────────────────────────────────┘

Clickhouse获取本周的最后一天、本月的最后一天相关推荐

  1. android获取后一天日期,android获取本周本月本年的第一天和最后一天

    /*** * 获取本周的第一天和最后一天: */ public static String getFirstDayAndLastDayOfDay() { StringBuffer stringBuff ...

  2. calendar获取本周一的日期_Swift - 获取本周(或指定日期所在周)的第一天、最后一天日期...

    原来我写过一篇文章介绍如何计算当月.当年.或者指定年月的第一天.最后一天日期(点击查看).有网友问要怎么得到指定周的的第一天.最后一天日期.下面我通过代码进行演示. 一.获取本周的第一天.最后一天日期 ...

  3. oracle取本月最后一天是星期几_Oracle 获取本周、本月、本季、现年的第一天和最后一天...

    Oracle 获取本周.本月.本季.本年的第一天和最后一天 --本周 select trunc(sysdate,'d')+1 from dual; select trunc(sysdate,'d')+ ...

  4. Oracle 获取本周、本月、本季、本年的第一天和最后一天

    来源:https://www.cnblogs.com/cheng5x/p/6888158.html Oracle 获取本周.本月.本季.本年的第一天和最后一天 --本周 select trunc(sy ...

  5. java 本年第一天_JAVA获取本周 本月 本年 第一天和最后一天

    /** * 日期工具类 */ public class DateUtils { /** * 获取今天 * @return String * */ public static String getTod ...

  6. java 本年第一个月_JAVA获取本周 本月 本年 第一天和最后一天

    JAVA获取本周 本月 本年 第一天和最后一天 /** * 日期工具类 */ public class DateUtils { /** * 获取今天 * @return String * */ pub ...

  7. java8获取本周本月第一天和最后一天

    本月 LocalDate today = LocalDate.now(); //本月的第一天 LocalDate firstday = LocalDate.of(today.getYear(),tod ...

  8. Python 获取本月的最后一天

    Python 获取本月的最后一天 一.需求 现在有一个场景,需要每月的最后一天,发送一封邮件. 二.获取本月最后一天 有没有办法使用Python的标准库轻松确定(即一个函数调用)给定月份的最后一天? ...

  9. Java获取指定日期的本月,上月,下月的最后一天

    获取指定日期:上个月的最后一天 public static Date endOfLastMonth(Date date) {Calendar cal = setCalendarTime(date);c ...

最新文章

  1. 基于MAP-MRF的视差估计
  2. 关于表单的java的程序_JAVA BOT程序模拟人类用户填写表单 并 发送
  3. 疫情之下,职场人自降薪资期待求自保 | 2020Q1报告
  4. MySQL安装步骤及相关问题解决
  5. 网络推广——移动端网络推广备受关注
  6. 【Paper】2013_An efficient model predictive control scheme for an unmanned quadrotor helicopter
  7. 深度学习(二十三)Maxout网络学习-ICML 2013
  8. 操作系统(十)进程通信
  9. 第七章_类_7.4 类的作用域(加了自己的总结部分)
  10. strcpy函数_错误更正(拷贝赋值函数的正确使用姿势)
  11. HDU-1027 组合数 STL-next_permutation
  12. javaweb实训第六天下午——Mybatis基础
  13. win11怎么解除网络限制 windows11解除网络限制的设置方法
  14. Codeforces 1039D You Are Given a Tree (看题解)
  15. mobi 电子书格式详解
  16. html5常用的小控件,收藏了
  17. C语言也能干大事第七节(如鹏基础)
  18. 研究生英语读写译教程下课文译文及课后答案2
  19. itunes显示无法更新服务器失败怎么办啊,iTunes更新时出错怎么办?iTunes更新时出错的解决方法...
  20. IIS5.1完整安装包使用指南(详解版)

热门文章

  1. java远端控制模拟灯光_基于JAVA的模拟屏控制系统软件实现
  2. 制造业要想成功实现数字化转型,数据治理是关键
  3. Arduino与Proteus仿真实例-4x4矩阵键盘驱动仿真
  4. 线性回归python实现
  5. VEGAS Pro 16——视频编辑的新时代
  6. wht html标签,index.html
  7. java体系学习总结记录——超长篇
  8. 中英文字体库打包下载
  9. 兀r的平方写成C语言表达式,“圆的面积πR平方。应该是四个6寸才等于一个12寸的”。...
  10. CSM4056 线性锂离子电池充电管理 IC 可替代LN4056 TP4056 LP4056