首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sql中前3个月的月份名称和每个月的最后日期

在SQL中,可以使用日期函数和条件语句来获取前3个月的月份名称和每个月的最后日期。

首先,我们可以使用DATE_SUB函数来获取当前日期的前3个月的日期。然后,使用MONTH函数和CASE语句来获取月份名称。最后,使用LAST_DAY函数来获取每个月的最后日期。

以下是一个示例查询:

代码语言:txt
复制
SELECT 
    CASE 
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 1 THEN 'January'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 2 THEN 'February'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 3 THEN 'March'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 4 THEN 'April'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 5 THEN 'May'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 6 THEN 'June'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 7 THEN 'July'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 8 THEN 'August'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 9 THEN 'September'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 10 THEN 'October'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 11 THEN 'November'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) = 12 THEN 'December'
    END AS MonthName,
    LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) AS LastDateOfMonth
UNION ALL
SELECT 
    CASE 
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 1 THEN 'January'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 2 THEN 'February'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 3 THEN 'March'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 4 THEN 'April'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 5 THEN 'May'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 6 THEN 'June'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 7 THEN 'July'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 8 THEN 'August'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 9 THEN 'September'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 10 THEN 'October'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 11 THEN 'November'
        WHEN MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) = 12 THEN 'December'
    END AS MonthName,
    LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AS LastDateOfMonth
UNION ALL
SELECT 
    CASE 
        WHEN MONTH(CURDATE()) = 1 THEN 'January'
        WHEN MONTH(CURDATE()) = 2 THEN 'February'
        WHEN MONTH(CURDATE()) = 3 THEN 'March'
        WHEN MONTH(CURDATE()) = 4 THEN 'April'
        WHEN MONTH(CURDATE()) = 5 THEN 'May'
        WHEN MONTH(CURDATE()) = 6 THEN 'June'
        WHEN MONTH(CURDATE()) = 7 THEN 'July'
        WHEN MONTH(CURDATE()) = 8 THEN 'August'
        WHEN MONTH(CURDATE()) = 9 THEN 'September'
        WHEN MONTH(CURDATE()) = 10 THEN 'October'
        WHEN MONTH(CURDATE()) = 11 THEN 'November'
        WHEN MONTH(CURDATE()) = 12 THEN 'December'
    END AS MonthName,
    LAST_DAY(CURDATE()) AS LastDateOfMonth;

这个查询将返回前3个月的月份名称和每个月的最后日期。你可以根据需要进行调整和优化。

关于腾讯云相关产品和产品介绍链接地址,由于不能提及具体品牌商,建议你访问腾讯云官方网站,查找与云计算相关的产品和服务。在腾讯云的官方网站上,你可以找到各种云计算解决方案、云服务器、云数据库、云存储等产品,以满足你的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解决PHP时间戳月份日期带不带0问题

php处理时间戳解决时间戳月份日期带不带0问题 解决PHP时间戳月份日期带不带0问题 有的时候网页输出日期时间,月份日期前有个0,总感觉是多余,今天我们就分享关于PHP时间戳月份日期前面显示...2、获取时间戳方法time()、strtotime() 这两个方法,都可以获取phpunix时间戳,time()为直接获取得到,strtotime(time, now)为将时间格式转为时间戳, 3、...) echo date(‘Y’).’年’.date(‘m’).’月’.date(‘d’).’日’,输出结果:2012年3月22日 举例就这几个,只是格式变通而已,下面是格式各个字母含义: 各种参数详解...,输出结果:2012-03-15 00:00:00(上个星期四此时时间) 等等,自己去变通研究吧,strtotime()方法可以通过英文文本控制Unix时间戳显示,而得到需要时间日期格式。...原文链接:https://blog.csdn.net/starrykey/article/details/52572676 未经允许不得转载:肥猫博客 » 解决PHP时间戳月份日期带不带0问题

6.4K30

js月份日期补0一种简单实现方法

警告 本文最后更新于 2022-10-08,文中内容可能已过时。...问题 我博客创建是通过借助obisidian插件脚本来生成,创建名称是年月日加时间,国庆期间进行文件名统一重新管理,按【年月日+标题】来命名。...js脚本月日字段生成默认是没有补0,也就是如果1位的话显示是这样1月1号:1-1,而不是01-01,这样整体就不统一。 js日期字段 查了一下资料,找到了一种简单解决方法。...ES2017 引入了字符串补全长度功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。  ...1 2 3 4 5 6 7 8 9 //用法   var month = (d.getMonth() + 1).toString().padStart(2, '0'); //需要tosting转换;指头部需要俩位数

45520

SQL 日期时间类型

在我们SQL中一般支持三种数据类型。 date:日历日期,包括年(四位),月日。 time: 一天时间,包括小时,分秒。可以用变量time(p)来表示秒小数点后数字位数(默认是0)。 ...如果指定with timezone,则时区信息也会被存储 日期时间类型值可按如下方式说明: date:‘2018-01-17’ time:‘10:14:00’ timestamp:‘2018-01-...17 10:14:00.45’ 日期类型必须按照如上年月日格式顺序指定。...timetimestamp秒部分可能会有小数部分。...我们可以利用cast e as t形式表达式来讲一个字符串(或字符串表达式)e转换成类型t,其中t是date,time,timestamp一种。字符串必须符合正确格式,像本段开头说那样。

3K60

php处理时间戳解决时间戳月份日期带不带0问题

php处理时间戳解决时间戳月份日期带不带0问题 解决PHP时间戳月份日期带不带0问题 有的时候网页输出日期时间,月份日期前有个0,总感觉是多余,今天我们就分享关于PHP时间戳月份日期前面显示...2、获取时间戳方法time()、strtotime() 这两个方法,都可以获取phpunix时间戳,time()为直接获取得到,strtotime(time, now)为将时间格式转为时间戳, 3、...) echo date(‘Y’).’年’.date(‘m’).’月’.date(‘d’).’日’,输出结果:2012年3月22日 举例就这几个,只是格式变通而已,下面是格式各个字母含义: 各种参数详解...,输出结果:2012-03-15 00:00:00(上个星期四此时时间) 等等,自己去变通研究吧,strtotime()方法可以通过英文文本控制Unix时间戳显示,而得到需要时间日期格式。...未经允许不得转载:肥猫博客 » php处理时间戳解决时间戳月份日期带不带0问题

8.7K50

【MySQL基础】Mysql获得当前日期个月最后一天

Mysql获得当前日期个月最后一天  场景:一家P2P公司财务专员请求开发人员(或DBA)统计历史借款用户数量,她查看时间是今天,想要数据是这个月以前(不含这个月用户数。  ...难题:“这个月”是动态,可能是2016年7月、2017年3月等等。我们就需要写一个动态SQL给她以后就让她自己执行就OK了。  ...我们想要应该是这样SQL: SELECT COUNT(ACCT_ID) FROM ACCOUNT WHERE DATE_FORMAT(PAY_DATE, '%Y%m%d') <= 条件时间  如果这个条件时间是当前时间上一个月最后一天该有多好...是的,那我们就根据当前时间找到条件时间(当前时间上一个月最后一天)吧:  在Mysql获得当前日期所在月第一天一节我们已经拿到了当前日期所在月第一天,这个日期减去24个小时该多好,下面就这样做吧...条件时间】  但是我们想要形式是20160630,所以需要格式化日期

88320

滴滴面试题:打车业务问题如何分析?

分析出2020年8月9月,每个月北京市新老司机(首单日期在当月为新司机)司机数、在线时长TPH(订单量/在线时长)数据。 3....使用多维度拆解分析方法来拆解题目为以下子问题: 1)每个月司机数 2)条件:新司机 2)时间条件:2020年8月9月 3)城市条件:北京市 先来看子问题1:每个月司机数 对于司机数计算,用到 ...根据《猴子 从零学会sql》里讲过,遇到“每个”这类型问题要用分组汇总。“每个月”按月份分组(group by),用count(司机id)来汇总司机数。...根据《猴子 从零学会sql》里讲过,遇到“每个”这类型问题要用分组汇总。“每个月”按月份分组(group by),在线时长总长利用sum(在线时长)来计算。...sql语句解析如下 查询结果如下 (3) 提取2020年8月9月,每个月北京市新司机TPH(订单量/在线时长)。 由题可知,TPH=订单量/在线时长。

1.6K20

NetT-sql日期函数操作

net日期函数代码:  代码 数据库日期函数: 函数 参数/功能 GetDate( ) 返回系统目前日期与时间 DateDiff (interval,date1,date2) 以interval...指定方式,返回date2 与date1两个日期之间差值 date2-date1 DateAdd (interval,number,date) 以interval指定方式,加上number之后日期...DatePart (interval,date) 返回日期date,interval指定部分所对应整数值 DateName (interval,date) 返回日期date,interval指定部分所对应字符串名称...参数 interval设定值如下: 值 缩 写(Sql Server) (Access ASP) 说明 Year Yy yyyy 年 1753 ~ 9999 Quarter Qq q 季...1 ~ 4 Month Mm m 月1 ~ 12 Day of year Dy y 一年日数,一年第几日 1-366 Day Dd d 日,1-31 Weekday Dw w 一周日数,一周第几日

1.3K60

SQL 打印全年日历

观察图片可知,这里年历月份上文月历不同地方是星期天放在一周前面,因此获取日期所在周函数参数要调整。...我们暂时把一个月数据当成一个整体,通过公式 n = FLOOR((当前月 - 1) / 3) 计算出每个月份被放在第几队。 同一队里面每个月份同一周数据都处于同一排。...每个月最多只有 5 周,我们能计算出在一个月里面每个日期分别处于哪一周。...由于 WEEK 函数计算是当前日期在一年里面处于第几周,要计算 1 月以后每个日期在它所在月份里面属于第几周,可通过公式 WEEK(当前日期)-WEEK(上个月最后一天日期) 得到。...DATE_ADD(first_day, INTERVAL id - 1 DAY) AS day_m FROM ( /* 设定年初第一天年末最后一天日期

88731

图解面试题:如何分析红包领取情况?

3.分析每个月按领红包取天数为1、2、3……30、31天区分,计算取每个月领取红包用户数,人均领取金额,人均领取次数。...下图是两表联结条件(通过用户ID日期联结)。 (3)使用哪种联结呢? 因为要查询是领取红包用户,所以要保留“领取红包”表(上图右表)全部数据,因此使用右联结。...=n.抢红包日期 and ,m.用户ID=n.用户ID) as agroup by a.抢红包日期; 结果如下图 3.分析每个月按领红包取天数为1、2、3……30、31天区分,计算取每个月领取红包用户数...【分析思路】 领取红包用到表是“领取红包”表。出现“每个月”这样字眼,就要想到用分组汇总来解决此类问题,按“月份”分组。 使用month(日期)获取月份。...select month(抢红包日期) as 月份,count(distinct 抢红包日期) as 领取天数,count(distinct 用户ID) as 每个月领取红包用户数,sum(金额)/count

1.3K20

C++实现2024新年日历

更具计算规则计算平年或者闰年,配置二月份天数。月份计算因为除了二月份很特殊,其他余份都很固定,一个大月一个小月,大月31天,小月30天,周而复始。...所以只需要建立数组固定每个月大小,然后使用循环打印就好了,根据每个月天数固定换一个月,也就是换一行,然后内部就根据某天星期几开始循环往复,都很固定。...公元8年,罗马参议院将此月改名,以表彰他丰功伟业与对帝国杰出贡献。在公元46年以前,这个月份是“Sextilis”,原因在于在罗马历法,八月排在第六个位置(对应单词“six”,意思就是六)。...但随着奥古斯都被赋予这个月份名称,“Sextilis”就变成了“Augustus”。这样做,既表达了对这位伟大领袖敬仰之情,同时亦成为铭记历史重要人物事件鲜明标志。...最后若有收获,点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您关注将是我更新动力!

39710

sql技巧之开窗函数rank()使用

今天分享一篇交流群里群友问题某群友解答!...题目 当前数据库”testsql”日志,存在日期字段”gl_dt”(varchar)玩具id字段”loan_amt”(varchar),现需求找出每个月相较于上个月新增玩具名,每个月相较于下个月失去玩具名...这里我用是 substr(GL_DT,1,7),不转日期格式,只保留日期7位。 如何解题 “上月新增”“下月失去”概念,可以抽象并统称为“回流”或“流失”。...具体分级效果为,从最小月份开始排序,rank级别为1,每增加一个月,rank+1,同月所有数据处于同一rank下。...dense_rank()作为排序函数,如果使用rank(),假设现在一共有10w条数据,rank排序结尾值为10w,会失去月份排序效果 多次left join需要注意问题 如题所示,“回流”“流失

71550

get动态增量新功能,让大数据量入集市更便捷

如果使用“增量导入数据”“普通增量”,每天追加前一天数据到集市没有问题,但是无法满足“最近3个月数据会变化”场景,比如:咱们在2021年3月10号,将2021年3月9号数据追加到集市,但是到了...历史数据按月全量入(2021-03-01日进行) (1) 需要一个sql数据集,查询 表“某部门订单数据”全部数据,且需要有日期字段。...(2)新建一个“动态增量”任务 文件夹:设置集市文件夹名称,需要有意义 更新依据列:需要是日期类型,如果不是日期类型,选择旁边新建计算列,通过表达式方式将非日期类型日期列,转换为日期类型。...实现效果是历史数据按月分割,不同月份数据存储在不同集市文件,并自动给集市数据加上meta,meta名为:_Date_Range_,meta值:数据对应月份。...),而是每个月一条。

1.1K30

3道常见SQL笔试题,你要不要来试试!

在笔试过程,总会出现那么一两道“有趣”SQL题,来检测应聘者一个逻辑思维,这对于初入职场“小白”也是非常不友好。...step4:根据id结果分组并计算count 最后一步,我们直接根据step3获取到差值,根据id差值进行一个分组求count即可。...答案已经出来了,id为13用户至少连续登录了3天及以上,他们分别连续登录时长为34天。...step2: 计算每人单月访问量 为了让子查询看起来更加美观,我们这里先用t1代替上一步结果。通过这一步,我们就可以获取到每个用户,每个月访问量。...完整SQL 温馨提示:上述步骤展示都是不完整SQL,每步使用变量代替一步SQL语句只是为了方便给大家展示,实际上运行结果都是作者将完整SQL放进去跑哈~ select userId

1.1K20

1341. 十三号星期五(基姆拉尔森计算公式)

本文最后更新于 445 天,其中信息可能已经有所发展或是发生改变。 1341. 十三号星期五(基姆拉尔森计算公式) 原题链接 描述 十三号星期五真的很不常见吗?...每个月十三号是星期五频率是否比一周其他几天低? 请编写一个程序,计算 N 年内每个月 13 号是星期日,星期一,星期二,星期三,星期四,星期五星期六频率。...在一年,4 月、6 月、9 月、11 月每个月 30 天,2 月平年 28 天,闰年 29 天,其他月份每个月31天。...(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 在公式d表示日期日数,m表示月份数,y表示年数。...w表示星期,w取值范围是0~6,0代表星期日,1~6星期一到星期六 注意:在公式:把1月2月看成是上一年13月14月.

14920

2022年来了,从Python定制一份日历开始吧!

获取日期 首先,绘制一份日历,得先知道每个月份有多少天,每天都是星期几,可以使用calendar包获得这些信息: calendar.monthcalendar(2022, i) 通过这个函数,我们能得到...2022年i月日历,它类似一个j*k矩阵,因此可以这样遍历得到每一个日期: # calendar.monthcalendar 获得值类似于: # [[0, 0, 0, 0, 1, 2, 3],...基于Openpyxl,绘制一份日历最方便做法是先将日期等信息绘制到excel,然后再从excel中提取图片出来。 Openpyxl怎么用?...作品是每个月份都有一个图在旁边做装饰 为了给每个月份添加一份装饰图,需要向Excel插入图片,幸运是,Openpyxl提供了很方便插入方法: # 添加图片 img = Image(f'12graphs...如果你要自行DIY,请注意图片名称不能过错,必须是从1到12jpg格式。 \ 4.

62310

Hive常用函数案例实操

分组统计,查出各部门中男女个数: 3. 行转列: 4. 列转行 5. 综合练习 6. 查询顾客购买明细及月购买总额 7. 将每个顾客cost按照日期进行累加 8....求明细,以及每个月有哪些顾客来过 9....求20%订单数据 13. percent_rank():这条数据在这个数据百分之多少,一般也是配合有序窗口使用 14. rank():排序函数(排序相同时会重复,总数不会变) 15. dense_rank...固定写法,记住就行: lateral view explode(split(category,',')) tbl as cate; 综合练习: sql如下: 查询2017年四月份购买过商品的人...: 查询顾客购买明细及月购买总额: 将每个顾客cost按照日期进行累加: 求明细,以及每个月有哪些顾客来过: 查询每个顾客上次购买时间: lag(col,n,default_val):某一列往前第

85850

定时任务cron表达式详解_el表达式详解

与{星期}互斥,即意味着若明确指定{星期}触发,则表示{日期}无意义,以免引起 冲突混乱 “,” 代表在指定日期触发,比如”1,10,20″代表1号、10号20号这3天触发 “-“代表在指定日期范围内触发...,则距离为0;所谓本月内说法,就是不能跨月取到最近工作日,即使/后月份最后一天/第一天确实满足最近工作日;因此,”LW”则意味着本月最后一个工作日触发,”W”强烈依赖{月份} “C” 根据日历触发...; “,” 代表在指定月份触发,比如”1,6,12″代表1月份、6月份12月份触发任务 “-“代表在指定月份范围内触发,比如”1-6″代表从1月份开始触发到6月份结束触发,每隔1个月触发 “...每个月最后一天10点15分0秒触发任务 “0 15 10 LW * ?” 每个月最后一个工作日10点15分0秒触发任务 “0 15 10 ?...* 5L” 每个月最后一个星期四10点15分0秒触发任务 “0 15 10 ?

79630
领券