獲取指定日期的常用前後節點(月初月末周一週末等等)

2021-09-06 19:38:37 字數 2486 閱讀 8847

原文:

獲取指定日期的常用前後節點(月初月末周一週末等等)

注:周節點方面是根據中國習慣,視周一為起,週日為末。

/*

---------------------------------

函式:獲取某日期的特定起止節點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 ...