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相关推荐

  1. 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 ...

  2. oracle executesqlcommand,Oracle Execute Command Sql Script in Win

    -- ---------------------------------------------------------------------------- -- SQL server下可以通过cm ...

  3. SQL Server: create table sql script

    ---摇奖observeh数据库设计 Function getSpace lottery /* -- Author:geovindu 涂聚文 -- Date: 20180427 为了自写生成代码.根据 ...

  4. sql trace基础

    一. 基础.SQL_TRACE 1. 在全局启用 在参数文件(pfile/spfile)中指定: sql_trace =true 在全局启用SQL_TRACE会导致所有进程的活动被跟踪,包括后台进程及 ...

  5. 关于SQL Server 2017中使用json传参时解析遇到的多层解析问题

    原文:关于SQL Server 2017中使用json传参时解析遇到的多层解析问题 开发新的系统,DB部分使用了SQL Server从2016版开始自带的Json解析方式. 用了快半年,在个人项目,以 ...

  6. 怎么把mysql转换mssql_MySQL如何转SQL server

    本文咱讨论的重点是如何将MySql数据导入到Sql Server数据库中,所以就需要机器上同时安装了MySql和Sql Server两种数据库. 要点:mysql 和 mysql odbc 都是64位 ...

  7. 在SQL Server中判断一个作业是否正在运行

    select step_id,run_status,run_date As rundate --a.run_time, a.* from msdb.dbo.sysjobhistory a inner ...

  8. 通过程序获得SQL Server自增型字段的函数:GetKey

    通过程序获得SQL Server自增型字段的函数:GetKey 概述: 通过程序来产生自增型字段,可以避免多用户操作的读取脏数据,操作也很简便.可以更好的在程序中控制这些关键字段的数值. 关键步骤: ...

  9. sql server监控

    sql server监控 http://www.mssqltips.com/sqlservertip/2522/sql-server-monitoring-checklist/ 1.查看sql ser ...

最新文章

  1. How can I exclude directories from grep -R?
  2. SwiftUI3优秀文章List 去掉左右间距问题
  3. php中rsa加密及解密和签名及验签
  4. java lambda循环_在Java 8 Lambda中创建自己的循环结构
  5. jni c call java_Java通过-jni调用c语言
  6. leetcode72 编辑距离
  7. 无人驾驶之入门(车联网和5G)
  8. C#中的委托与事件 笔记
  9. 4.15Day20加密模块,表格操作模块
  10. 蚂蚁课堂视频笔记思维导图-3期 十、分布式解决方案
  11. 2013Esri全球用户大会QA之ArcGIS未来发展
  12. 如何用快解析自制IoT云平台
  13. 动态规划解最长公共子串
  14. 2017年进口食品代理加盟排行榜
  15. 根据书单来制作item2vec
  16. 一个老程序员的教诲(2)
  17. 如何使用 Enterprise Architect 画 UML
  18. CSS 如何做一个比较真实有感觉的阴影效果
  19. ngui 教程一 转载自:雨松MOMO程序研究院
  20. 微软下载历史windows版本软件

热门文章

  1. android 获取文件夹的字节数,android java file 清理垃圾获取文件大小 删除文件等操作...
  2. arcgis xml 下载 切片_arcgis api 4.x for js地图加载arcgisserver本地离线瓦片(附源码下载)...
  3. FortiGate双链路不同运营商上网配置
  4. mpvue中使用小程序云开发总结
  5. android自学之旅——layout资源文件
  6. Editor扩展之查看Prefab用在那儿
  7. 观察者模式--java jdk中提供的支持
  8. 因为项目管理知识体系指南(PMBOK)初识宝地
  9. 让WordPress达到最高性能的13个优化技巧
  10. linux5 syscall 流程_Linux的上的程序是如何运行的,api机制是怎么样?