取日期相交記錄

2021-06-05 20:49:00 字數 1151 閱讀 3147

declare @holiday table

(id int identity(1,1),

sdate datetime,

edate datetime,

remark varchar(30) 

)insert into @holiday(sdate, edate, remark) values('2012-03-10', '2012-03-15', 'a')

--insert into @holiday(sdate, edate, remark) values('2012-04-01', '2012-04-04', 'b') 

insert into @holiday(sdate, edate, remark) values('2012-04-10', '2012-04-11', 'c')

insert into @holiday(sdate, edate, remark) values('2012-04-28', '2012-05-01', 'd')

--insert into @holiday(sdate, edate, remark) values('2012-05-05', '2012-05-10', 'f')

-- 設定取日期範圍

declare @sdate datetime, @edate datetime

select @sdate = '2012-04-01', @edate = '2012-04-30'

-- 取日期相交記錄(日期有效記錄)

select

(case when @sdate >= sdate then @sdate else sdate end) as sdate, -- 開始日期取大

(case when @edate <= edate then @edate else edate end) as edate, -- 結束日期取小

remark

from @holiday

where

((@sdate between sdate and edate)

or (@edate between sdate and edate)

or (@sdate <= sdate and edate <= @edate)

)

SQL 多表關聯取最大日期的那條記錄

1 需求 兩個表,投遞記錄表和封發開拆記錄表,現在想知道投遞日期距最後一次封發日期天數分布情況。對這個需求,需要先查詢出投遞明細,同時要知道對應的郵件最後一次封發情況,如機構 日期等。2 明細查詢 考慮到一天可能封發多次,所以取日期和時間都是最大的那條,語句如下 select d.city,d.ss...

日期區間不能相交以及面值什麼的判斷的記錄

幾年前的 只記得是判斷日期不能有相交,記錄下。declare starttime datetime declare endtime datetime declare minparvalue int declare maxparvalue int set starttime 2014 6 17 set...

sql函式取日期

1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3.datediff...