sql 指定时间 所在的周、月、季、年
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 指定时间 所在的周、月、季、年的更多相关文章
- java获取当前时间的年周月季度等的开始结束时间
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...
- SQL Server时间粒度系列----第4节季、年时间粒度详解
本文目录列表: 1.SQL Server季时间粒度2.SQL Server年时间粒度 3.总结语 4.参考清单列表 SQL Serve季时间粒度 季时间粒度也即是季度时间粒度.一年每3 ...
- SQL Server时间粒度系列----第7节日历数据表详解
本文目录列表: 1.时间粒度有关描述 2.时间维度有关功能函数3.日历数据表 4.日历数据表数据填充 5.总结语 6.参考清单列表 时间粒度有关描述 将该系列涉及到的时间粒度以及分钟以下的粒度 ...
- SQL 截取时间
-- 获取系统时间 print getdate() -- 获取3天前的时间 print dateadd(day, -3 , getdate()) -- 获取3天后的时间 print dateadd(d ...
- SQL Server 获取最后一天(指定时间的月最后一天日期)
/* author OceanHo @ 2015-10-23 10:14:21 获取指定时间字符串指定日期的月最后一天日期 */ IF OBJECT_ID('get_LastDayDate') IS ...
- SQL Server时间粒度系列----第2节日期、周时间粒度详解
本文目录列表: 1.从MySQL提供的TO_DAYS和FROM_DAYS这对函数说起2.SQL Server日期时间粒度3.SQL Server周有关时间粒度 4.总结语 5.参考清单列表 从My ...
- SQL Server时间粒度系列----第3节旬、月时间粒度详解
本文目录列表: 1.SQL Server旬时间粒度2.SQL Server月有关时间粒度 3.SQL Server函数重构 4.总结语 5.参考清单列表 SQL Server旬时间粒度 ...
- PHP 指定时间/时间戳+某天/某月/某年
PHP指定时间戳加上1天,1周,1月,一年其实是不需要用上什么函数的!指定时间戳本身就是数字整型,我们只需要再计算1天,1周它的秒数相加即可! 博主搜索php指定时间戳加一天一年,结果许多的文章给出来 ...
- Sql日期时间格式转换;取年 月 日,函数:DateName()、DATEPART()
一.sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007 ...
随机推荐
- AS3中的单件(Singleton)模式
单件(singleton)模式在c#中是最容易实现的模式,其主要用意就在于限制使用者用new来创建多个实例.但在as3中,构造函数必须是public的(语法本身要求的),而且也不能在构造函数中抛出异常 ...
- load 过高分析办法
1.top -H 找到占用cpu较高的进程2.top -Hp pid 找到该进程下占用cpu较高的线程id3.sudo -u adminjstack -F 进程id > ~/stack.txt ...
- XPath简介及节点
XPath是一门在XML文档中查找信息的语言. XPath可用来在XML文档中对元素和属性进行遍历. XPath使用路径表达式在XML文档中进行导航. XPath路径表达式:XPath使用路径表达式来 ...
- 关于php条形码生成(barcode),修改样式
今天听错了需求,以为要重新设计条形码,第一次制作这个,经过搜索使用的barcode这个第三方的,具体使用步骤网上很多就不在这里详细介绍了.主要是今天遇到的样式修改问题: barcode经过查看是无法自 ...
- Linux下Mysql安装(RPM安装)
1. 首先检查机器里是否已经存在MySQL $ rpm -qa | grep mysql 2. 去官网下载相应的rpm包:https://dev.mysql.com/downloads/mysql/ ...
- 【PHP面试题】通俗易懂的两个面试必问的排序算法讲解:冒泡排序和快速排序
又到了金三银四找工作的时间,相信很多开发者都在找工作或者准备着找工作了.一般应对面试,我们无可厚非的去刷下面试题.对于PHPer来说,除了要熟悉自己所做的项目,还有懂的基本的算法.下面来分享下PHP面 ...
- ImportError: No module named MySQLdb问题的解决
今天在windows上撸python代码,遇到ImportError: No module named MySQLdb的问题,遂赶紧pip install mysql-python,结果还是不行,查看 ...
- ES6 扩展运算符
ES6的扩展运算符则可以看作是rest参数的逆运算.可以将数组转化为参数列表. 如:console.log(1,...[2,3,4],5) //1 2 3 4 5 用于合并数组: [1,2, ...m ...
- MAC系统上不能调试华为手机
调试问题: 使用MACOS会发现在android 开发环境完整的情况下,接入MOTO,SAMSUNG,HTC,ZTE等手机都可以自动识别,并可以在DDMS中查看LOGCAT,唯独华为的手机不可识别.U ...
- python 实现 Fortran的读取10*0以及换行读问题
思路,用read来全部读取,然后替换带*的元素来解决.代码如下 import numpy as np import re inf = open('SF.usr') title = inf.readli ...