1. 程式人生 > >mssql sqlserver 獲取指定日期為本月第幾個工作日

mssql sqlserver 獲取指定日期為本月第幾個工作日

 摘要:
    下文講述工作中,需要獲取指定日期在當月的工作日

--------------------------------------------------
下文講述常規的指定工作日所在月的天數分析,
實現思路:
1 生成一個國家法定假日表(A),非星期六,星期天
2 生成一個國家法定補辦表(B),涉及星期六星期天調班
3 生成指定月份的日期流水錶(C)
4 獲取指定日期的工作日資訊,如下所示:
 
 --例: 獲取 2018-4-10 為2018年4月的第幾個工作日 
 declare @d datetime
  set @d ='2018-4-10'   --可通過下面的方法計算出 為本月第6個工作日
---1:獲取4月指定日期的所在月工作日數
create table A(A datetime)
create table B(B datetime)
----4.5.4.6 4.7 4.30為法定假日
insert into A (A)values('2018-4-5'),
('2018-4-6'),('2018-4-7'),('2018-4-30')
----補班日 4月8 4月28 4月30 日
insert into B (B)values('2018-4-8'),
('2018-4-28'),('2018-4-30')
---生成指定月份(4月)所有天數流水
set datefirst 1   --設定星期一為第一個工作日

 select   *  from 
 (
 
select row_number() over(order by d asc ) as [本月第*個工作日],d,datepart(w,d) as [weekInfo] from (
select dateadd(day,number,'2018-4-1') as d from master..spt_values 
where type='p' 
and number >=0 
and dateadd(day,number,'2018-4-1') between '2018-4-1' and dateadd(day,-1,'2018-5-1')
) as   a 
where a.d not in (select A from A)
and   (a.d  in (select b from B ) 
        or datepart(w,a.d)  not in (6,7) 
       )
)   as extend 
where d 
[email protected]
go drop table A drop table B


 

相關推薦

mssql sqlserver 獲取指定日期本月工作日

 摘要:    下文講述工作中,需要獲取指定日期在當月的工作日--------------------------------------------------下文講述常規的指定工作日所在月的天數分析,實現思路:1 生成一個國家法定假日表(A),非星期六,星期天2 生成一個

mssql sqlserver獲取指定月份當月天數總和

CREATE FUNCTION dbo.fn_getMonthDayAll ---自定義函式名稱 ( @yyyyMM VARCHAR(20) ---指定輸入引數格式 4位年份2位月份 ) RETURNS INT ---函式返回值型別 AS BEGIN DECLARE @dayAll INT

js實現獲取當前時間是本月周的方法

< script language = "javascript" > var getMonthWeek = function(a, b, c) { /* a = d = 當前日期 b = 6 - w = 當前周的還有幾天過完(不算今天) a + b

Android listview和gridview獲取當前xy座標是item

之前我是通過算item的大小和xy比較來計算出是第幾個item的,但是比較麻煩 後來通過查閱文件和資料,發現有一個API方法是 pointToPosition(int x,int y); 只要把getX和getY的值傳入即可 注意!!不要用getRawX和getRa

根據指定日期獲取月份、根據當前獲取該自然周的起始日期

// 獲取指定日期內月份的起始日期 protected function to_month($begin_at , $end_at) { $month1 = explode("-", $begin_at); $month2 = explode(

PHP獲取指定日期

phpecho date(‘Y-m-d h:i:s‘,time()-30*24*3600).‘<br />‘; //通過計算的方式獲得前30天的時間戳echo date(‘Y-m-d h:i:s‘,time()-7*24*3600).‘<br />‘; //通過計算的方式

ThinkPHP中如何獲取指定日期工作日的具體日期

HERE creat ans 判斷 封裝 vat his 類型 con 思路: 1、獲取到查詢年份內所有工作日數據數組2、獲取到查詢開始日期在工作日的索引3、計算需查詢日期索引4、獲得查詢日期 /*創建日期類型記錄表格*/ CREATE TABLE `tb_workda

獲取指定日期所在一週的時間範圍(週一00:00:00---週日 23:59:59)

/**一週週期相關*/ public class MyWeekDate { /**開始時間*/ public long mLong_begin; /**開始日期*/ public String mStr_begin; /**結束時間*/ public long mLong_end; /**結束日

js 獲取指定日期上一天及下一天,上一月及下一月

1、獲取指定日期上一天、下一天 function getNextDate(date,day) { var dd = new Date(date); dd.setDate(dd.getDate() + day); var y = dd.getFullYear(); var m

獲取指定日期的第二天的凌晨時間

package DateUtil; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;

react使用原生js獲取點選的ul下的li 並設定classNameactive

import React from 'react' import './index.less'; import { Link } from "react-router-dom"; class Index extends React.Component { state

Python3實現獲取指定日期範圍內的月份列表

import datetime from dateutil import rrule class TimeHelper(): def getMonthRangList(self, start_month, end_month): """ 從開始日期到結束

php獲取指定日期,前一天、前一週、前一個月、前一年,後一天,後一週,前一個月,前一年

dump( date( 'Y-m-d', strtotime('2018-10-1 +1 day') ) ); dump( date( 'Y-m-d', strtotime('2018-10-1 +1 week') ) ); dump( date( 'Y-m-d', strtotime('2018-10-

JS獲取指定日期前後N天的日期、前N日期、後N日期

   今天做專案遇到了,獲取相對於當前日期前30天的時間,結合網上資料,做了一份整理。 一.獲取指定日期前或者後指定間隔時間程式碼 function getNowFormatDate(sdate,interval,caret) {     var patt1 =  /^\

【python】獲取指定日期的後(前)一(n)天

開始在網上找到了,獲取今天,明天和前天日期的程式碼。 >>> import datetime #匯入日期時間模組 >>> today = datetime.date.today() #獲得今天的日期 >>> print

JS獲取指定日期的前一天,一週,一個月

//獲取當前日期方法 function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var year = date.getFullYear(); var month = date.getMonth() + 1; var

java獲取指定日期的前一天和後一天

@Test public void getDay() { String day = "2018-03-19"; Calendar c = Calendar.get

php中,獲取指定日期的當月天數

在工作中,經常會遇到獲取某一個月份的天數問題,之前我是這麼解決的。 //這裡以2015年11月為例 $inputs['month'] = '201511';//傳遞過來的引數 $tmp_month

js日期計算及快速獲取周、月、季度起止日,獲取指定日期週數以及星期的小例子

轉載地址:https://www.cnblogs.com/laneyfu/p/5028916.html //   通過週數和星期計算日期   //2017年1月1日是星期日,算第一週,1月2日週一算是第二週 function dateFromWeek(year,

[學習筆記]JS獲取指定日期前一天

var mydate=new Date(Date.parse(stockdate.replace(/-/g,"/")));var yesterday_milliseconds=mydate.getTime()-1000*60*60*24; var yesterday=new