SQL 输出某一天所在的年月对应的所有星期的开始与结束日期(每个月仅算4周,第四周可能会有10天)
来源:互联网 发布:极品泰版球衣淘宝店 编辑:程序博客网 时间:2024/05/22 01:32
背景:有时侯导报表需要动态计算每个月对应每周的第一天与最后一天。最后一周的时间要求不需要仅精确到第7天,可以算10天。
USE [***]GO/****** Object: StoredProcedure [dbo].[sp_CalcStartDateEndDateForSingleYearMonthInDate] Script Date: 2016/2/25 14:28:26 ******/DROP PROCEDURE [dbo].[sp_CalcStartDateEndDateForSingleYearMonthInDate]GO/****** Object: StoredProcedure [dbo].[sp_CalcStartDateEndDateForSingleYearMonthInDate] Script Date: 2016/2/25 14:28:26 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO/*exec [sp_CalcStartDateEndDateForSingleYearMonthInDate] '2016-1-1'exec [sp_CalcStartDateEndDateForSingleYearMonthInDate] '2015-10-1'exec [sp_CalcStartDateEndDateForSingleYearMonthInDate] '2015-9-1'exec [sp_CalcStartDateEndDateForSingleYearMonthInDate] '2014-3-1'*/CREATE PROC [dbo].[sp_CalcStartDateEndDateForSingleYearMonthInDate](@SingleDate datetime)ASBEGIN DECLARE @month VARCHAR(2)DECLARE @year VARCHAR(4)DECLARE @FirstDayInFeb DATETIMEDECLARE @LastDayInFeb DATETIMEif(@SingleDate is null)set @SingleDate=getdate()SET @month= MONTH(@SingleDate)SET @year=YEAR(@SingleDate)SET @FirstDayInFeb = CONVERT(DATETIME, @year+'-02-01')SET @LastDayInFeb = DATEADD(M, 1, @FirstDayInFeb)SET @LastDayInFeb = DATEADD(D, -1, @LastDayInFeb)--drop table @tWeek--CREATE TABLE @tWeek--(--startDate VARCHAR(10),--endDate VARCHAR(10),--weekIndex INT--)declare @tWeek TABLE (startDate VARCHAR(10),endDate VARCHAR(10),weekIndex INT)INSERT INTO @tWeek VALUES ( @year+'-'+@month+'-1',@year+'-'+@month+'-7', 1)INSERT INTO @tWeek VALUES ( @year+'-'+@month+'-8',@year+'-'+@month+'-14', 2)INSERT INTO @tWeek VALUES ( @year+'-'+@month+'-15',@year+'-'+@month+'-21', 3)IF @month IN (1,3,5,7,8,10,12)INSERT INTO @tWeek VALUES ( @year+'-'+@month+'-22',@year+'-'+@month+'-31', 4)IF @month IN (4,6,9,11)INSERT INTO @tWeek VALUES ( @year+'-'+@month+'-22',@year+'-'+@month+'-30', 4)IF @month=2INSERT INTO @tWeek VALUES ( @year+'-'+@month+'-22', CONVERT(VARCHAR(10),@LastDayInFeb,120),4)SELECT * FROM @tWeek END GO
运行结果:
0 0
- SQL 输出某一天所在的年月对应的所有星期的开始与结束日期(每个月仅算4周,第四周可能会有10天)
- PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
- 获取日期所在星期的所有数据
- 计算一年有多少个周,每个周的开始日期和结束日期是什么
- 计算一年有多少个周,每个周的开始日期和结束日期是什么
- java 20008年月历输出 日期的个位与星期数相等 的日子
- 计算当前日期所在星期内的所有日期
- 计算一个日期所在星期内的所有日期
- PHP:获取指定日期所在月的开始日期与结束日期
- 输出指定年月的月历,年月从键盘输入。每星期一行,从星期日开始,到星期六结束。
- 当输入一个年月份和日期的时候,输出是今年的第多少天
- java获取指定年月的开始时间与结束时间
- 取得给定日期所在周的开始日期和结束日期
- 功能:取得给定日期所在周的开始日期和结束日期
- SQL : 开始日期和结束日期,SQL找出中间的所有日期. 关于天数。
- 根据开始和结束时间,计算出该时间段每个星期的开始和结束时间
- Java 输出某一年所有的日期
- 取得本星期的开始和结束日期
- test
- 第 10 章 数据结构
- 申请完Apple开发者账户后,如何进行开发
- 【技术控】 如何做按钮小动画?HTML+CSS3
- 【征文】Hadoop十周年特别策划——我与Hadoop不得不说的故事
- SQL 输出某一天所在的年月对应的所有星期的开始与结束日期(每个月仅算4周,第四周可能会有10天)
- java中,为什么弃用stop和suspend方法
- SSH 远程登录Linux服务器很慢的解决方案
- 蓝桥杯四8设计题翻硬币
- [C++11]_[初级]_[左值引用声明和右值引用声明]
- NVMe驱动中断绑定
- mybatis generator一款mybatis反向生成工具
- NOR flash和NAND flash区别,RAM 和ROM区别
- oracle技术博客