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