原文:
獲取指定日期的常用前後節點(月初月末周一週末等等)
注:周節點方面是根據中國習慣,視周一為起,週日為末。
/*---------------------------------
函式:獲取某日期的特定起止節點v0.01
author:ahdung
update:201305151755
---------------------------------
*/alter
function dbo.fgetspecialdate_ahdung(@date date, @spcdate
varchar(20
))returns date as
begin
if@spcdate
in ('
yearbeg
','yb
','nc
','年初
') return
datename(year,@date)+
'-01
-01'
else
if@spcdate
in ('
yearend
','ye
','nw
','年尾
','年末
') return
datename(year,@date)+
'-12
-31'
else
if@spcdate
in ('
quarterbeg
','qtbeg
','qb
','jc
','季初
') return
datename(year,@date)+
case
when
month(@date)<=
3then
'-01
'when
month(@date)<=
6then
'-04
'when
month(@date)<=
9then
'-07
'else
'-10
'end+'
-01'
else
if@spcdate
in ('
quarterend
','qtend
','qe
','jw
','季尾
','季末
') return
datename(year,@date)+
case
when
month(@date)<=
3then
'-03-31
'when
month(@date)<=
6then
'-06-30
'when
month(@date)<=
9then
'-09-30
'else
'-12-31
'end
else
if@spcdate
in ('
monbeg
','mb
','yc
','月初
') return
convert(char(7),@date,120)+
'-01
'else
if@spcdate
in ('
monend
','me
','yw
','月尾
','月末
') return
dateadd(day,-
1,convert(char(7),dateadd(month,1,@date),120)+
'-01')
else
if@spcdate
in ('
weekbeg
','wb
','zy
','周一
') return
dateadd(day,2
-case
datepart(dw,@date) when
1then
8else
datepart(dw,@date) end,@date
)else
if@spcdate
in ('
weekend
','we
','zr
','zm
','週日
','週末
') return
dateadd(day,8
-case
datepart(dw,@date) when
1then
8else
datepart(dw,@date) end,@date
)return
@date
end
mysql 獲取指定日期到指定日期 區間段的日期
第一種方法 cross join 就相當於mysql中的迴圈 cross join 把兩張表中的資料進行 n m的組合,即笛卡爾積 這裡的兩張表利用 union all都有5條資料,所以進行 cross join 後 就有25條資料 而指定的日期區間就會從這25條資料總產生 select curda...
查詢指定日期前後2天的資料 包括指定日期當天
select from ticket where date1 dateadd dd,1,2010 04 02 and date1 dateadd dd,1,2010 04 02 其中date1為日期字段,dateadd為日期函式,2010 04 02為要查詢的指定日期 注意 日期計算不能直接用加減數...
指定日期的前後幾天的日期或者月份
但是這種也不算是很完美 按照下標擷取還是很不保險 測試的時候就發現 有人傳 2021 6 2 這種不是標準格式的。所以有第二種方式。獲取指定日期的前幾天或月份的日期 param past return public static string getpastdate int past,string ...