sql 语句系列(每个季度的开始日期和结束日期)[八百章之第二十二章]
前言
基本上统计财务一定会用到。
mysql
select QUARTER(ADDDATE(y.dy,-1)) QTR,
DATE_ADD(y.dy,INTERVAL -3 MONTH) Q_start,
ADDDATE(y.dy,-1) Q_end
from(
select DATE_ADD(x.dy,INTERVAL (3*x.id) MONTH) dy
FROM(
select id,ADDDATE(CURRENT_DATE,-DAYOFYEAR(CURRENT_DATE)+1) dy
from T100
where id<=4
) x
) y
解析:
select id,ADDDATE(CURRENT_DATE,-DAYOFYEAR(CURRENT_DATE)+1) dy
from T100
where id<=4
得到新年第一天,也就是1月1号。然后生成4行。
select DATE_ADD(x.dy,INTERVAL (3*x.id) MONTH) dy
分别在1月1号增加 3个月,6个月,9个月,12个月
得到的就是每一个季度后的一天,比如说1月1号增加3个月,那么就是4月1号,那么就是第一季度3月31后的一天。
至此相信后面就不用解释了。
sql server
with x(dy,cnt)
as(
select DATEADD(d,-(datepart(dy,getdate())-1),getdate()),1
union all
select DATEADD(m,3,dy),cnt+1
from x
where cnt+1<=4
)
select DATEPART(q,dateadd(d,-1,dy)) QTR,
DATEADD(m,-3,dy) Q_Start,
DATEADD(d,-1,dy) Q_End
from x
order by 1
原理和上文一致。
sql 语句系列(每个季度的开始日期和结束日期)[八百章之第二十二章]的更多相关文章
- “全栈2019”Java异常第二十二章:try-with-resources语句详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- “全栈2019”Java第二十二章:控制流程语句中的决策语句if-else
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- WP8.1学习系列(第二十二章)——在页面之间导航
在本文中 先决条件 创建导航应用 Frame 和 Page 类 页面模板中的导航支持 在页面之间传递信息 缓存页面 摘要 后续步骤 相关主题 重要的 API Page Frame Navigation ...
- JS获取本周、本季度、本月、上月的开始日期、结束日期
/** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = ...
- JS获取本周、本季度、本月、上月、本年的开始日期、结束日期
/** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今 ...
- JAVA使用LocalDate获取当前日期所在季度的开始日期和结束日期
需要使用jdk1.8及以上 /** * 获取当前日期所在季度的开始日期和结束日期 * 季度一年四季, 第一季度:1月-3月, 第二季度:4月-6月, 第三季度:7月-9月, 第四季度:10月-12月 ...
- sql 入门经典(第五版) Ryan Stephens 学习笔记 (第六,七,八,九,十章,十一章,十二章)
第六章: 管理数据库事务 事务 是 由第五章 数据操作语言完成的 DML ,是对数据库锁做的一个操作或者修改. 所有事务都有开始和结束 事务可以被保存和撤销 如果事务在中途失败,事务中的任何部分都不 ...
- PHP计算一年有多少周,每周开始日期和结束日期
一年有多个周,每周的开始日期和结束日期 参考代码一:[正在使用的版本] <?php header("Content-type:text/html;charset=utf-8" ...
- PHP获取一年有几周以及每周开始日期和结束日期
最近接了一个项目,其中有一需求是用php获取一年有几周以及每周开始日期和接触日期.在网上找些资料没有合适的,于是自己做了一份,下面通过两种方式实现PHP获取一年有几周以及每周开始日期和结束日期 代码一 ...
- MySql开始日期、结束日期查询
str_to_date('2016-08-24', '%Y-%m-%d %H') validStartTime str_to_date('2016-09-16', '%Y-%m-%d %H') val ...
随机推荐
- 从Python语言的角度看C++的指针
技术背景 从一个Python Coder的角度来说,其实很羡慕C++里面指针类型的用法,即时指针这种用法有可能会给程序带来众多的不稳定因素(据C++老Coder所说).本文主要站在一个C++初学者的角 ...
- 四: Mysql用户管理
# 用户与权限管理 MySQL用户可以分为普通用户和root用户, root用户是超级管理员,拥有所有权限,包括创建用户.删除用户和修改用户的密码等管理权限:普通用户只拥有被授予的各种权限. MySQ ...
- Netty笔记(4) - 对Http和WebSocket的支持、心跳检测机制
对HTTP的支持 服务端代码: 向 PipeLine中 注册 HttpServerCodec Http协议的编码解码一体的Handler 处理Http请求 封装Http响应 public class ...
- C++ //类模板与友元 //全局函数类内实现 -直接在类内声名由于即可 //全局函数类外实现 -需要提前让编译器知道全局函数的存在
1 //类模板与友元 2 //全局函数类内实现 -直接在类内声名由于即可 3 //全局函数类外实现 -需要提前让编译器知道全局函数的存在 4 5 #include <iostream> 6 ...
- InputNumber 不能输入点 viewDesign 需求是 只能是整数
<InputNumber ref="xxxRef" v-model="xxx" :disabled="xxx" style=" ...
- github git clone下载加速 && npm install 下载加速
git clone https://pd.zwc365.com/seturl/< https 开头的项目地址> npm install --registry=https://registr ...
- C++学习笔记之进阶编程
目录 进阶编程 STL(Standard Template Library) 容器(container) 仿函数(functor) 算法(algorithm) transform 查找 全排列 迭代器 ...
- JAVA | Guava EventBus 使用 发布/订阅模式
系列文章目录 Go | Go 语言打包静态文件以及如何与Gin一起使用Go-bindata Go | Gin 解决跨域问题跨域配置 目录 系列文章目录 前言 一.为什么要用 Observer模式以及 ...
- 【stars-one】星念音乐下载器
一款可将各个音乐网站可在线播放的音乐保存到本地的软件,目前暂且支持网易云音乐 获取软件 星念音乐下载器pc版v1.5 https://www.ilanzou.com/s/CI7zaWz 星念音乐下载器 ...
- day03-模块化编程
模块化编程 1.基本介绍 传统的非模块化开发有如下的缺点:(1)命名冲突(2)文件依赖 JavaScript代码越来越庞大,JavaScript引入模块化编程,开发者只需要实现核心的业务逻辑,其他都可 ...