sql script: Calculating Days
1 --日曆(sql server 2005) 2 3 CREATE TABLE T1 (ID INTEGER) 4 INSERT INTO T1 VALUES (1) 5 ---- 6 with x(dy,dm,mth,dw,wk) 7 as( 8 select dy, 9 day(dy) dm, 10 datepart(m,dy) mth, 11 datepart(dw,dy) dw, 12 case when datepart(dw,dy)=1 13 then datepart(ww,dy)-1 14 else datepart(ww,dy) 15 end wk 16 from( 17 select dateadd(day,-day(getdate())+1,getdate()) dy 18 from t1 19 ) x 20 union all 21 select dateadd(d,1,dy),day(dateadd(d,1,dy)),mth, 22 datepart(dw,dateadd(d,1,dy)), 23 case when datepart(dw,dateadd(d,1,dy))=1 24 then datepart(wk,dateadd(d,1,dy))-1 25 else datepart(wk,dateadd(d,1,dy)) 26 end 27 from x 28 where datepart(m,dateadd(d,1,dy))=mth 29 ) 30 select max(case dw when 2 then dm end) as Mo, 31 max(case dw when 3 then dm end) as Tu, 32 max(case dw when 4 then dm end) as We, 33 max(case dw when 5 then dm end) as Th, 34 max(case dw when 6 then dm end) as Fr, 35 max(case dw when 7 then dm end) as Sa, 36 max(case dw when 1 then dm end) as Su 37 from x 38 group by wk 39 order by wk 40 41 --- 42 select dy, 43 day(dy) dm, 44 datepart(m,dy) mth, 45 datepart(dw,dy) dw, 46 case when datepart(dw,dy)=1 47 then datepart(ww,dy)-1 48 else datepart(ww,dy) 49 end wk 50 from( 51 select dateadd(day,-day(getdate())+1,getdate()) dy 52 from t1 53 ) x 54 go 55 56 --第幾周 57 with x(dy,dm,mth,dw,wk) 58 as( 59 select dy, 60 day(dy) dm, 61 datepart(m,dy) mth, 62 datepart(dw,dy) dw, 63 case when datepart(dw,dy)=1 64 then datepart(ww,dy)-1 65 else datepart(ww,dy) 66 end wk 67 from( 68 select dateadd(day,-day(getdate())+1,getdate()) dy 69 from t1 70 ) x 71 union all 72 select dateadd(d,1,dy), day(dateadd(d,1,dy)),mth, 73 datepart(dw,dateadd(d,1,dy)), 74 case when datepart(dw,dateadd(d,1,dy))=1 75 then datepart(wk,dateadd(d,1,dy))-1 76 else datepart(wk,dateadd(d,1,dy)) 77 end 78 from x 79 where datepart(m,dateadd(d,1,dy))=mth 80 ) 81 select * from x
1 --- 2 CREATE FUNCTION [dbo].[f_week_days_in_period] (@start_date datetime, @end_date datetime) 3 RETURNS INT 4 AS 5 BEGIN 6 7 -- If the start date is a weekend, move it foward to the next weekday 8 WHILE datepart(weekday, @start_date) in (1,7) -- Sunday, Saturday 9 BEGIN 10 SET @start_date = dateadd(d,1,@start_date) 11 END 12 13 -- If the end date is a weekend, move it back to the last weekday 14 WHILE datepart(weekday, @end_date) in (1,7) -- Sunday, Saturday 15 BEGIN 16 SET @end_date = dateadd(d,-1,@end_date) 17 END 18 19 -- Weekdays are total days in perion minus weekends. (2 days per weekend) 20 -- Extra weekend days were trimmed off the period above. 21 -- I am adding an extra day to the total to make it inclusive. 22 -- i.e. 1/1/2008 to 1/1/2008 is one day because it includes the 1st 23 RETURN (datediff(d,@start_date,@end_date) + 1) - (datediff(ww,@start_date,@end_date) * 2) 24 25 END 26 27 --- 28 select dbo.f_week_days_in_period('2013-02-01','2013-02-28')
转载于:https://www.cnblogs.com/geovindu/archive/2013/03/04/2943199.html
sql script: Calculating Days相关推荐
- How to Enable Trace or Debug for APIs executed as SQL Script Outside of the Applications ?
In this Document Goal Solution 1: How do you enable trace for an API when executed from a SQL ...
- oracle executesqlcommand,Oracle Execute Command Sql Script in Win
-- ---------------------------------------------------------------------------- -- SQL server下可以通过cm ...
- SQL Server: create table sql script
---摇奖observeh数据库设计 Function getSpace lottery /* -- Author:geovindu 涂聚文 -- Date: 20180427 为了自写生成代码.根据 ...
- sql trace基础
一. 基础.SQL_TRACE 1. 在全局启用 在参数文件(pfile/spfile)中指定: sql_trace =true 在全局启用SQL_TRACE会导致所有进程的活动被跟踪,包括后台进程及 ...
- 关于SQL Server 2017中使用json传参时解析遇到的多层解析问题
原文:关于SQL Server 2017中使用json传参时解析遇到的多层解析问题 开发新的系统,DB部分使用了SQL Server从2016版开始自带的Json解析方式. 用了快半年,在个人项目,以 ...
- 怎么把mysql转换mssql_MySQL如何转SQL server
本文咱讨论的重点是如何将MySql数据导入到Sql Server数据库中,所以就需要机器上同时安装了MySql和Sql Server两种数据库. 要点:mysql 和 mysql odbc 都是64位 ...
- 在SQL Server中判断一个作业是否正在运行
select step_id,run_status,run_date As rundate --a.run_time, a.* from msdb.dbo.sysjobhistory a inner ...
- 通过程序获得SQL Server自增型字段的函数:GetKey
通过程序获得SQL Server自增型字段的函数:GetKey 概述: 通过程序来产生自增型字段,可以避免多用户操作的读取脏数据,操作也很简便.可以更好的在程序中控制这些关键字段的数值. 关键步骤: ...
- sql server监控
sql server监控 http://www.mssqltips.com/sqlservertip/2522/sql-server-monitoring-checklist/ 1.查看sql ser ...
最新文章
- How can I exclude directories from grep -R?
- SwiftUI3优秀文章List 去掉左右间距问题
- php中rsa加密及解密和签名及验签
- java lambda循环_在Java 8 Lambda中创建自己的循环结构
- jni c call java_Java通过-jni调用c语言
- leetcode72 编辑距离
- 无人驾驶之入门(车联网和5G)
- C#中的委托与事件 笔记
- 4.15Day20加密模块,表格操作模块
- 蚂蚁课堂视频笔记思维导图-3期 十、分布式解决方案
- 2013Esri全球用户大会QA之ArcGIS未来发展
- 如何用快解析自制IoT云平台
- 动态规划解最长公共子串
- 2017年进口食品代理加盟排行榜
- 根据书单来制作item2vec
- 一个老程序员的教诲(2)
- 如何使用 Enterprise Architect 画 UML
- CSS 如何做一个比较真实有感觉的阴影效果
- ngui 教程一 转载自:雨松MOMO程序研究院
- 微软下载历史windows版本软件
热门文章
- android 获取文件夹的字节数,android java file 清理垃圾获取文件大小 删除文件等操作...
- arcgis xml 下载 切片_arcgis api 4.x for js地图加载arcgisserver本地离线瓦片(附源码下载)...
- FortiGate双链路不同运营商上网配置
- mpvue中使用小程序云开发总结
- android自学之旅——layout资源文件
- Editor扩展之查看Prefab用在那儿
- 观察者模式--java jdk中提供的支持
- 因为项目管理知识体系指南(PMBOK)初识宝地
- 让WordPress达到最高性能的13个优化技巧
- linux5 syscall 流程_Linux的上的程序是如何运行的,api机制是怎么样?