1. 程式人生 > >mysql算兩個日期之間的工作日

mysql算兩個日期之間的工作日

-- 設定日期表起止引數
set @date1='2013/01/01';
set @date2='2015/12/31';

-- 建立日期表
CREATE TABLE calendar
(day DATE NOT NULL primary key,
holiday INT(11) NOT NULL DEFAULT '0'
dow int(11) not null);
truncate calendar;

-- 建立儲存過程,以便迴圈給日期表加入資料
delimiter $$
drop procedure if exists test;
create procedure test()
begin
declare tday date;
set

[email protected];
while (tday <= @date2) do
 insert into calendar(day) values(tday);
 set tday=date_add(tday,interval 1 day);
end while;
end$$

-- 呼叫儲存過程加資料
call test();

-- 把星期幾算進去
update calendar set dow=dayofweek(day)-1;
update calendar set dow=7 where dow=0;

set @date1='2014/04/01';
set @date2='2014/04/30';

-- 利用日期表來獲取兩個日期之間的工作日,
-- 如果hol=0,則判斷是不是周6,7 是則不算,不是則算工作日數+1;
-- hol=1 是假期(不用管是不是周6,7);
-- hol=2 是工作日,工作日數+1
SELECT COUNT(*) FROM calendar
WHERE day BETWEEN @date1 AND @date2
AND ((DAYOFWEEK(day) NOT IN(1,7) AND holiday=0) or holiday=2);

相關推薦

mysql日期之間工作日

-- 設定日期表起止引數 set @date1='2013/01/01'; set @date2='2015/12/31'; -- 建立日期表 CREATE TABLE calendar (day DATE NOT NULL primary key, holiday INT

mysql 計算日期之間工作日天數

開發十年,就只剩下這套架構體系了! >>>   

8.3 確定日期之間工作日數目

one int form cas date_add ediff mat interval bsp 問題:給定兩個日期,求它們之間(包括這兩個日期本身)有多少個”工作“日。select sum(case when date_format(

java得到日期之間工作日

public static List<String> getWorkDays(String date1,String date2)throws Exception{ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-d

mysql的DateDiff函式查詢日期的差的函式用於日期的差距

例子 <!-- 查詢開標時間在的當天內的招標專案--> <select id="queryBidopenToday" resultMap="BaseResultMap" > select <include refid="Base_Column_List" /

獲取日期之間工作日天數以及獲取日期之間的所有日期的列表

1.首先是程式碼實現: 1.1獲取工作日天數 /// <summary> /// 獲取兩個日期之間的工作日天數 /// </summary> /// <param name="BeginDate"&

MySQL如何查詢日期之間的記錄

MySQL中,如何查詢兩個日期之間的記錄,日期所在欄位的型別為datetime(0000-00-00 00:00:00) 解決方案: 直接使用><=就可以查詢。 where createDate<'2003-5-31' and createDate>

【原創工具】JAVA後臺計算日期之間工作日時間差

【程式碼實現】:兩個日期之間的工作日時間差(精確到毫秒) 【程式碼特點】: 1.支援跨年。 2.獲取的是精確到毫秒的時間差。 3.國家法定假日未計算在內(像陰曆這種的只有通過加入LIST的方法了=。=)。 package com.wednesday.tools.ti

MySql:給定日期,生成日期之間的連續日期

有的時候做報表之類的查詢的時候 , 如果主表在某一天沒有記錄資料, 那麼統計出來結果中是沒有那個日期的……但!報表要求不能缺失日期,因為在關聯其它表的時候也許這些日期就有用了。看了網上的一些生成連續日期的答案, 說實話沒有找到多少靠譜的(我是做報表), 在CSDN逛了一圈以後

js實現獲取日期之間篩選出指定周日制的方法

js var start = "2017-5-25"; var end = "2017-6-5"; var startTime = new Date(start); var endTime = new Date(end) var timeArr = []; var weekDay = ["1","2

計算日期之間的天數差C++/java

new abs ear == 關於 ostream logs col 多少 1--Java 分析:調用java中Calendar類 int days(Date date1,Date date2){   Calendar cal = new Calendar.getInst

8.05 確定日期之間的秒、分、小時數

max rom diff all red 日期 date edi cas select datediff(ward_hd,allen_hd)*24 hr, datediff(ward_hd,allen_hd)*24*60 min,

獲取日期之間的所有日期列表

start.s () clas gpo arr lis imei rtti star public static List<Date> genDateList(Date beginDate,Date endDate){ List<Date> date

C++ 計算任意日期之間的天數

gpo start plain efault ediff include win sel put C++寫的一個計算兩個日期之間天數的小程序: [cpp] view plain copy #include <Windows.h>

java 獲取日期之間的天數

public static String calcTwoDate(Date date ,Date date2){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date);

Oracle中使sql求日期之間的所有日期

比如,兩個日期是2018-08-27和2018-08-30,要求27,28, 29,30這四天的日期,我們可以採用下面的SQL來求得: --oracle 求兩個日期之間的所有日期 SELECT TO_CHAR((TO_DATE(KSRQ, 'yyyy-MM-dd') + (ROWNU

C#實踐問題:如何在LINQ to Entities 查詢中,計算日期之間相差的天數?

在LINQ to Entities 查詢中,使用常規日期格式轉換函式Convert.ToDateTime()以及日期比較函式TimeSpan.Subtract().Days,都很麻煩而且會出錯:LINQ to Entities不能識別方法。。。 那麼要想在LINQ to Entities 查詢中

c# 計算日期之間相差的天數

    策劃要求有每日任務,因為對時間不瞭解,所以查了一下資料,終於完成了要求,現把程式碼記錄在下面。 算不上轉載,更算不上原創的一點想法吧         public vo

計算日期之間相隔的天數

/******************************************************* 程式內容:計算從一個日期到另一個日期一共經歷的天數 *******************************************************/ #include

iSO獲取日期之間的所有日期陣列,精確到天

- (void)viewDidLoad {     [superviewDidLoad];     NSArray *datearr = [selfgetDayArrayLeftDate:@"2017年01月01日