Useful SQL scripts

DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
DECLARE @FiscalBeginMonth INT
SELECT @StartDate = DATEADD(MONTH,-1,GETDATE()),@EndDate = GETDATE(),@FiscalBeginMonth = 7
WITH
E00(N) AS (SELECT 1 UNION ALL SELECT 1),
E02(N) AS (SELECT 1 FROM E00 a, E00 b),
E04(N) AS (SELECT 1 FROM E02 a, E02 b),
E08(N) AS (SELECT 1 FROM E04 a, E04 b),
E16(N) AS (SELECT 1 FROM E08 a, E08 b),
E32(N) AS (SELECT 1 FROM E16 a, E16 b),
cteTally(N) AS (SELECT ROW_NUMBER() OVER (ORDER BY N) FROM E32), CalendarBase as (
SELECT
DateKey = n
, CalendarDate = DATEADD(day, n - 1, @StartDate )
, FiscalYearBegin = DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(DAY, n - 1, @StartDate )) - (12 + DATEPART(MONTH, DATEADD(day, n - 1, @StartDate )) - @FiscalBeginMonth) % 12, 0)
FROM cteTally
WHERE N <= DATEDIFF(day, @StartDate , @EndDate +1)
)
SELECT DateKey
, IsoDate = CONVERT(char(8), CalendarDate, 112)
, CalendarDate
, CalendarYear = YEAR(CalendarDate)
, CalendarQuarter = (DATEPART(QUARTER,CalendarDate) )
, CalendarMonth = MONTH(CalendarDate)
, CalendarDay = DATEPART(DAY, CalendarDate)
, DayofWk = DATEPART(Dw, CalendarDate)
, CalendarWeekOfMonth = DATEDIFF(week, DATEADD(day,1, CalendarDate-DAY(CalendarDate) + 1) -1, CalendarDate) +1
, WeekofYr = DATEPART(WEEK, CalendarDate)
, DayofYr = DATEPART(DAYOFYEAR, CalendarDate)
, NameMonth = DATENAME(Month, CalendarDate)
, NameDay = DATENAME (Weekday,CalendarDate )
, FiscalYear = CASE WHEN MONTH(CalendarDate) < @FiscalBeginMonth THEN
YEAR(CalendarDate)
ELSE YEAR(CalendarDate) + 1
END
, FiscalMonth = DATEDIFF( MONTH, FiscalYearBegin, CalendarDate) + 1
, FiscalWeek = DATEDIFF( WEEK, FiscalYearBegin, CalendarDate) + 1
, FiscalDay = DATEDIFF( day, FiscalYearBegin, CalendarDate) + 1
, FirstDateOfWeek = DATEADD(D, -DATEPART(Dw, CalendarDate)+2, CalendarDate)
FROM CalendarBase

 

[MSSQL] Useful SQL Scripts - CalendarBase的更多相关文章

  1. General Ledger Useful SQL Scripts – Oracle Applications 11i

    General Ledger Useful SQL Scripts – Oracle Applications 11i Contents GL Set of Books Configuration O ...

  2. General Ledger Useful SQL Scripts

    General Ledger Useful SQL Scripts – Oracle Applications 11i Contents GL Set of Books Configuration O ...

  3. php之连接mssql(sql server)新手教程

    ps:网上搜了很多教程,讲的都很好,就是都有点漏的地方,花了一天时间查缺补漏终于弄好了(;´༎ຶД༎ຶ`),希望我的教程能帮到新手,还有写博客的时候因为不小心按错一个键,导致重写了,博客园这个编辑器真 ...

  4. SQL监控:mysql及mssql数据库SQL执行过程监控审计

    转载 Seay_法师 最近生活有很大的一个变动,所以博客也搁置了很长一段时间没写,好像写博客已经成了习惯,搁置一段时间就有那么点危机感,心里总觉得不自在.所以从今天起还是要继续拾起墨笔(键盘),继续好 ...

  5. 【mssql】SQL Server2012编程入门经典(第四版)(上) 读书笔记

    数据库用了很久了,但好多东西很容易忘记,这次头脑发热想起来读一遍书,做点笔记! 从第五章开始参考:<SQL Server 2005 编程入门经典>学习笔记 一.RDBMS基础:SQL Se ...

  6. mssql的sql注入拿后台

    0x01判断数据 ①判断数据库类型 and exists (select * from sysobjects)--返回正常为mssql(也名sql server) and exists (select ...

  7. mssql 判断sql语句的执行效率语句

    SET STATISTICS io ONSET STATISTICS time ONgo--========此处为sql代码段=============== select zxbh from t_yr ...

  8. [MSSQL]从SQL语句的角度 提高数据库的访问性能

    1.什么是执行计划?执行计划是依赖于什么信息. 2. 统一SQL语句的写法减少解析开销 3. 减少SQL语句的嵌套 4. 使用“临时表”暂存中间结果 5. OLTP系统SQL语句必须采用绑定变量 6. ...

  9. 【MSSQL】SQL Server的日期和时间类型

    参考:SQL Server的日期和时间类型 SQL Server使用 Date 表示日期,time表示时间,使用datetime和datetime2表示日期和时间. 1.秒的精度 秒的精度是指TSQL ...

随机推荐

  1. VC++ 关于 ON_UPDATE_COMMAND_UI 相关的作用.

    ON_COMMAND_RANGE(ID_SORTING_GROUPBYTYPE, ID_SORTING_SORTBYACCESS, OnSort) ON_UPDATE_COMMAND_UI_RANGE ...

  2. Linux(centos)系统各个目录的作用详解

    Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码 ...

  3. Sql 查找整个数据库中的字符串

    --存储过程 CREATE PROCEDURE [dbo].[SP_FindValueInDB] ( @value VARCHAR() ) AS BEGIN SET NOCOUNT ON; DECLA ...

  4. spark textFile 困惑与解释

    在编写spark测试应用时, 会用到sc.textFile(path, partition) 当配置为spark分布式集群时,当你读取本地文件作为输入时, 需要将文件存放在每台work节点上. 这时会 ...

  5. JS之延迟处理

    $(document).ready(function () { $("#zidong3,#zidong1").click(function () { $("#zidong ...

  6. Codeforces Round #383 _python作死系列

    A. Arpa's hard exam and Mehrdad's naive cheat 题意求1378的n次方的最后一位,懒的写循环节 瞎快速幂 py3 int和LL 合并为int了 def q_ ...

  7. Xcode升级插件失效,与添加插件不小心点击Skip Bundle解决办法

    一.当发现升级xcode后,插件不能使用,解决办法如下: 1.查看Xcode的UUID 在终端执行 defaults read /Applications/Xcode.app/Contents/Inf ...

  8. Java 基础知识总结 (二、基本数据类型)

    二.基本数据类型 java基本数据类型只能先声明后使用 boolean  true/false char 16-bit unicode character byte 8-bit integer sho ...

  9. 集合框架之 List

    集合框架就是Java中解决数组长度固定的问题,相当于动态数组,随时用,随时建立,内存释放  这个问题还不知道? 整个集合框架 概括为   List  Set Map 这三个接口以及他们的实现类之间的应 ...

  10. web.xml相关知识摘录整理

    web.xml 中的listener. filter.servlet 加载顺序及其详解 在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人 ...