DECLARE @TodayDateTime DATETIME
DECLARE @strToday NVARCHAR(19)

DECLARE @TodayBeginDateTime DATETIME
DECLARE @TodayEndDateTime DATETIME

DECLARE @WeekBeginDateTime DATETIME
DECLARE @WeekEndDateTime DATETIME

DECLARE @MonthBeginDateTime DATETIME
DECLARE @MonthEndDateTime DATETIME

DECLARE @YearBeginDateTime DATETIME
DECLARE @YearEndDateTime DATETIME

DECLARE @QuarterBeginDateTime DATETIME
DECLARE @QuarterEndDateTime DATETIME

DECLARE @YesterdayBeginDateTime DATETIME
DECLARE @YesterdayEndDateTime DATETIME

DECLARE @Day3BeforeBeginDateTime DATETIME
DECLARE @Day3BeforeEndDateTime DATETIME

DECLARE @Day7BeforeBeginDateTime DATETIME
DECLARE @Day7BeforeEndDateTime DATETIME

DECLARE @Day14BeforeBeginDateTime DATETIME
DECLARE @Day14BeforeEndDateTime DATETIME

DECLARE @Day30BeforeBeginDateTime DATETIME
DECLARE @Day30BeforeEndDateTime DATETIME

DECLARE @LastMonthBeginDateTime DATETIME
DECLARE @LastMonthEndDateTime DATETIME

DECLARE @LastWeekBeginDateTime DATETIME
DECLARE @LastWeekEndDateTime DATETIME

DECLARE @DateID INT

--指定统计时间
SET @TodayDateTime=GETDATE()-1 --CAST('2011-03-23 00:00:00' AS DATETIME)
SET @strToday= CONVERT(NVARCHAR(19),GETDATE(),120)
--当日
SET @TodayBeginDateTime=DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),0)
SET @TodayEndDateTime=DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),1))
--本月的第一天和最后一天
SET @MonthBeginDateTime=DATEADD(mm, DATEDIFF(mm,0,@TodayDateTime), 0)
SET @MonthEndDateTime=DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, @TodayDateTime)+1, 0))
--本年的第一天和最后一天
SET @YearBeginDateTime=DATEADD(yy, DATEDIFF(yy,0,@TodayDateTime), 0)
SET @YearEndDateTime=dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,@TodayDateTime)+1, 0))

--本周的第一天和最后一天(第一天是星期一 。因为系统默认的星期日是一周的第一天,所以计算时应该在 指定的时间上减一天)
SET @WeekBeginDateTime = DATEADD(wk, DATEDIFF(wk,0,@TodayDateTime), 0)
SET @WeekEndDateTime = DATEADD(ms, -3, DATEADD(wk, DATEDIFF(wk,0, @TodayDateTime), 7))

--本季的度第一天和最后一天
SET @QuarterBeginDateTime=DATEADD(qq, DATEDIFF(qq, 0, @TodayDateTime), 0)
SET @QuarterEndDateTime= DATEADD(ms, -3, DATEADD(qq, DATEDIFF(qq, 0, @TodayDateTime)+1, 0))
--昨天
SET @YesterdayBeginDateTime=DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-1)
SET @YesterdayEndDateTime=DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),0))
--三天前
SET @Day3BeforeBeginDateTime=DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-3)
SET @Day3BeforeEndDateTime=DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-2))
-- 七天前
SET @Day7BeforeBeginDateTime=DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-7)
SET @Day7BeforeEndDateTime=DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-6))
-- 14天前
SET @Day14BeforeBeginDateTime=DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-14)
SET @Day14BeforeEndDateTime=DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-13))
-- 30天前
SET @Day30BeforeBeginDateTime=DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-30)
SET @Day30BeforeEndDateTime=DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd,0,@TodayDateTime),-29))

--上个月的第一天和最后一天
SET @LastMonthBeginDateTime= DATEADD(mm, DATEDIFF(mm, 0, DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,@TodayDateTime), 0))), 0)
SET @LastMonthEndDateTime= DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,@TodayDateTime), 0))
--上周第一天和最后一天(第一天是星期一)
SET @LastWeekBeginDateTime = DATEADD(dd, -1, DATEADD(wk,DATEDIFF(wk, 6, @TodayDateTime), 1))
SET @LastWeekEndDateTime = DATEADD(ms, -3, DATEADD(dd,0,DATEADD(wk,DATEDIFF(wk,6,@TodayDateTime),7)))

SET @DateID=CAST(CONVERT(CHAR(10), @TodayDateTime, 112) AS INT)

/*--核对统计时间 */
SELECT @TodayDateTime AS TodayDateTime
, @TodayBeginDateTime AS TodayBeginDateTime, @TodayEndDateTime AS TodayEndDateTime
, @MonthBeginDateTime AS MonthBeginDateTime, @MonthEndDateTime AS MonthEndDateTime
, @YearBeginDateTime AS YearBeginDateTime, @YearEndDateTime AS YearEndDateTime
, @WeekBeginDateTime AS WeekBeginDateTime, @WeekEndDateTime AS WeekEndDateTime
, @QuarterBeginDateTime AS QuarterBeginDateTime, @QuarterEndDateTime AS QuarterEndDateTime
, @YesterdayBeginDateTime AS YesterdayBeginDateTime, @YesterdayEndDateTime AS YesterdayEndDateTime
, @Day3BeforeBeginDateTime AS Day3BeforeBeginDateTime, @Day3BeforeEndDateTime AS Day3BeforeEndDateTime
, @Day7BeforeBeginDateTime AS Day7BeforeBeginDateTime, @Day7BeforeEndDateTime AS Day7BeforeEndDateTime
, @Day14BeforeBeginDateTime AS Day14BeforeBeginDateTime, @Day14BeforeEndDateTime AS Day14BeforeEndDateTime
, @Day30BeforeBeginDateTime AS Day30BeforeBeginDateTime, @Day30BeforeEndDateTime AS Day30BeforeEndDateTime
, @LastMonthBeginDateTime AS LastMonthBeginDateTime, @LastMonthEndDateTime AS LastMonthEndDateTime
, @LastWeekBeginDateTime AS LastWeekBeginDateTime, @LastWeekEndDateTime AS LastWeekEndDateTime
, @DateID AS DateID

sql 指定时间 所在的周、月、季、年的更多相关文章

  1. java获取当前时间的年周月季度等的开始结束时间

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...

  2. SQL Server时间粒度系列----第4节季、年时间粒度详解

    本文目录列表: 1.SQL Server季时间粒度2.SQL Server年时间粒度 3.总结语 4.参考清单列表   SQL Serve季时间粒度       季时间粒度也即是季度时间粒度.一年每3 ...

  3. SQL Server时间粒度系列----第7节日历数据表详解

    本文目录列表: 1.时间粒度有关描述 2.时间维度有关功能函数3.日历数据表 4.日历数据表数据填充 5.总结语 6.参考清单列表   时间粒度有关描述   将该系列涉及到的时间粒度以及分钟以下的粒度 ...

  4. SQL 截取时间

    -- 获取系统时间 print getdate() -- 获取3天前的时间 print dateadd(day, -3 , getdate()) -- 获取3天后的时间 print dateadd(d ...

  5. SQL Server 获取最后一天(指定时间的月最后一天日期)

    /* author OceanHo @ 2015-10-23 10:14:21 获取指定时间字符串指定日期的月最后一天日期 */ IF OBJECT_ID('get_LastDayDate') IS ...

  6. SQL Server时间粒度系列----第2节日期、周时间粒度详解

    本文目录列表: 1.从MySQL提供的TO_DAYS和FROM_DAYS这对函数说起2.SQL Server日期时间粒度3.SQL Server周有关时间粒度 4.总结语 5.参考清单列表   从My ...

  7. SQL Server时间粒度系列----第3节旬、月时间粒度详解

    本文目录列表: 1.SQL Server旬时间粒度2.SQL Server月有关时间粒度 3.SQL Server函数重构 4.总结语 5.参考清单列表   SQL Server旬时间粒度       ...

  8. PHP 指定时间/时间戳+某天/某月/某年

    PHP指定时间戳加上1天,1周,1月,一年其实是不需要用上什么函数的!指定时间戳本身就是数字整型,我们只需要再计算1天,1周它的秒数相加即可! 博主搜索php指定时间戳加一天一年,结果许多的文章给出来 ...

  9. Sql日期时间格式转换;取年 月 日,函数:DateName()、DATEPART()

    一.sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007 ...

随机推荐

  1. 解题(GeLeiMa -生成格雷码)

    题目描述 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码. 给定一个整数n,请返回n位的格雷码 ...

  2. Java 运行时常量池

    运行时常量池是方法区的一部分.class中除了有类的版本,字段,方法,接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放在方法区的运行时常量池 ...

  3. Springboot学习07-数据源Druid

    Springboot学习07-数据源Druid 关键字 Druid 前言 学习笔记 正文 1-Druid是什么 Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和SQL解析器 ...

  4. 452. Minimum Number of Arrows to Burst Balloons扎气球的个数最少

    [抄题]: There are a number of spherical balloons spread in two-dimensional space. For each balloon, pr ...

  5. .net like模糊查询参数化

    List<SqlParameter> paras = new List<SqlParameter>(); if (!string.IsNullOrEmpty(ciName)) ...

  6. Less入门及知识点整理

    LESS « 一种动态样式语言 文档链接:http://www.bootcss.com/p/lesscss/ 百科 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合( ...

  7. jmeter 如何发送上传文件接口请求

    1.上传图片接口,通过抓包工具获取接口相关信息,然后在信息头里添加Content-Disposition:form-data; name="imgType" 2.在请求中MIME类 ...

  8. Eigen矩阵基本运算

    1 矩阵基本运算简介 Eigen重载了+,-,*运算符.同时提供了一些方法如dot(),cross()等.对于矩阵类的运算符重载只支持线性运算,比如matrix1*matrix2是矩阵相乘,当然必须要 ...

  9. SAS语言结构

    SAS程序用于访问.管理.分析和展现数据.其基础组成部分是 DATA步和PROC步,PROC步又称为SAS过程.一个SAS程序可包含以 任意顺序组合的多个DATA步和多个PROC步. DATA步通常用 ...

  10. java web中的异常处理

    1.集中处理 参考:https://blog.csdn.net/weililansehudiefei/article/details/73691294