工作中常需要产生某一年的周数、月份,比如按周排计划、按月核算工资……

1、自动产生周数(含每周起始及结束日期)

DECLARE @FirstDateOfYear DATETIME
SET @FirstDateOfYear='2017-01-01';
WITH T AS
(SELECT DATEADD(D,NUMBER,@FirstDateOfYear) DFROM MASTER.DBO.SPT_VALUESWHERE [TYPE]='P' AND NUMBER<DATEDIFF(D,@FirstDateOfYear,DATEADD(YY,1,@FirstDateOfYear))
)
SELECT DATEPART(YY,D) '年份',DATEPART(WEEK,D) '周数',CONVERT(VARCHAR,MIN(D),120) '起始日期',CONVERT(VARCHAR,MAX(D),120) '结束日期'
FROM T
GROUP BY DATEPART(YY,D),DATEPART(WEEK,D)

执行结果:

2、自动产生月份(含每月起始及结束日期)

DECLARE @FirstDateOfYear DATETIME
SET @FirstDateOfYear='2017-01-01';
WITH T AS
(SELECT DATEADD(M,NUMBER,@FirstDateOfYear) DFROM MASTER.DBO.SPT_VALUESWHERE [TYPE]='P' AND NUMBER BETWEEN 0 AND 11
)
SELECT DATEPART(YY,D) '年份',DATEPART(MM,D) '月份',CONVERT(VARCHAR(10),D,120) '起始日期',CONVERT(VARCHAR(10),DATEADD(Y,-1,DATEADD(M,1,D)),120) '结束日期'
FROM T

执行结果:

转载于:https://www.cnblogs.com/atomy/p/7458429.html

自动产生一年多少周及月相关推荐

  1. SQL Server自动产生一年多少周及月

    工作中常需要产生某一年的周数.月份,比如按周排计划.按月核算工资-- 1.自动产生周数(含每周起始及结束日期) DECLARE @FirstDateOfYear DATETIME SET @First ...

  2. DB查询分析器7.01新增的周、月SQL执行计划功能

                DB查询分析器7.01新增的周.月SQL执行计划功能 马根峰               (广东联合电子服务股份有限公司, 广州 510300) 1      引言   中国本 ...

  3. MySQL中按周、月、季、年分组统计

    根据日期,按照周.月.季.年对数据进行分组统计 一.前言 带着问题去学习,我觉得是一种非常有效的学习方法,不知下面的几个问题是否也是你所需要考虑的:被分组的日期是否连续.周是以周日为起始日,还是以周一 ...

  4. mysql如何按季度分组统计_MySQL中按周、月、季、年分组统计

    根据日期,按照周.月.季.年对数据进行分组统计 一.前言 带着问题去学习,我觉得是一种非常有效的学习方法,不知下面的几个问题是否也是你所需要考虑的:被分组的日期是否连续.周是以周日为起始日,还是以周一 ...

  5. 【原创】实现日、周、月排行统计

    在如今很多系统中,都需要进行日.周.月排行统计,但是在网上寻找了一番,发现很多都是相对的周.月排行,即周排行则用当前时间减去7天.这样我个人认为并不恰当.如月排行中,假设今天是4月22日,则从3月22 ...

  6. mysql获取当月数据_MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  7. sql语句分别按日,按周,按月,按季统计金额

    sql语句分别按日,按周,按月,按季统计金额 如:  表:consume_record  字段:consume (money类型)  date (datetime类型)  请问怎么写四条sql语句分别 ...

  8. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  9. Oracle日期转换为周,月,季度,半年,年

    实现当前时间,周,月,季度,半年,年的转换,其中特别注意的是周的处理,IW方式处理逻辑,如果本周有大于等于4天,本周属于几年,如果小于4天,本周属于下一年 以1990/12/31为例,这天属于1991 ...

最新文章

  1. sqli-labs第一关(MySql基础)
  2. Qt 模式视图框架解读之委托
  3. geometry-api-java 学习笔记(七)拓扑运算之cut
  4. 前端学习(2173):动态路由的跳转
  5. Cisco服务器怎么安装系统,CISCO服务器Linux系统安装步骤
  6. Spring Security示例教程
  7. matlab进行下采样
  8. 小程序安全沙箱技术,将恶意代码装进“笼子”里
  9. 如何干掉腾讯网迷你版
  10. 西安科技大学计算机学院党琪,段钊老师简介
  11. APP启动方式分析——冷启动、热启动、温启动
  12. python列表get方法_Python json.get方法代码示例
  13. 相亲时, 如何向 TA 解释区块链? | 春哥区块链创业记
  14. Vuforia的学习(二)Vuforia的安装
  15. 关于二维码生成工具类简介
  16. 联想微型计算机3000 c305,桌面一体机新宠 联想3000 C305评测
  17. JavaWeb学习:Filter
  18. CentOS7 系统基础优化
  19. 矢量数据 秦岭淮河_秦岭—淮河一线的范围划分
  20. python界面编程和网口通信_基于python的GUI聊天室设计

热门文章

  1. 篇章结构类型、层次及分析模式研究
  2. 基本算法汇总(长文)
  3. Mono for Android 实现高效的导航
  4. 子曾经曰过,先把历史遗留问题解决,然后再展鸿鹄
  5. 谷歌竞价推广Google Ads如何自己开户?
  6. Code-audit-Learning
  7. 数学建模常用方法 | matlab代码 | 二十三种数学建模方法 |2022赛前突击 |模型代码 |比赛比用、简单高效| 分享
  8. Oracle 12CR2查询转换之星型转换
  9. Gear 在 Polkadot 网络中的作用是什么?
  10. Windows 8.1中添加美式键盘