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. java学习笔记(十一):重写(Override)与重载(Overload)

    重写(Override) 重写是子类对父类的允许访问的方法的进行重新编写, 但是返回值和形参都不能改变. 实例 class Animal{ public void run(){ System.out. ...

  2. extJs学习的资源

    http://www.qeefee.com/zt-extjs   Ext JS 6 入门学习资料大全(2016-12-14)   cddnExtJS学习:http://blog.csdn.net/co ...

  3. 654. Maximum Binary Tree 最大节点劈开,然后左边、右边排序

    [抄题]: Given an integer array with no duplicates. A maximum tree building on this array is defined as ...

  4. 图片识别文字, OCR

    文章引用自: https://www.cnblogs.com/stone_w/archive/2011/10/08/2202397.html 方式一.Asprise-OCR的使用. Asprise-O ...

  5. mybatis pagehelper分页插件使用

    使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化.缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分 ...

  6. python 之字符编码

    一    了解字符编码的储备知识 python解释器和文件本编辑的异同      相同点:python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样 不 ...

  7. ajax的另一种成功和失败回调函数

    第一种: function engline(){ var oldmsg = $('#lineso').val() if(oldmsg == null || oldmsg == '' || oldmsg ...

  8. 测试快速关闭innodb的方法

    测试mysqlporformanceblog提供的减少关闭innodb时间的方法 经常发现一些MySQL镜像库的InnoDB的关闭时间会特别久,mysqlperformanceblog给出了一个不错的 ...

  9. mybatis 插入数据 在没有commit时 获取主键id

      <insert id="insert" parameterType="Mail" useGeneratedKeys="true" ...

  10. ABP框架系列之三十七:(Navigation-导航)

    Every web application has some menu to navigate between pages/screens. ASP.NET Boilerplate provides ...