declare
@dtdatetime
set@dt
=getdate(
)declare
@number
intset
@number=3
--1.指定日期該年的第一天或最後一天
--a. 年的第一天
select
convert
(char(5
),@dt,
120)
+'1-1'
--b. 年的最後一天
select
convert
(char(5
),@dt,
120)
+'12-31'
--2.指定日期所在季度的第一天或最後一天
--a. 季度的第一天
select
convert
(datetime
,convert
(char(8
),dateadd(
month
, datepart(quarter,
@dt)*3
-month
(@dt)-
2,@dt)
,120)+
'1')
--b. 季度的最後一天(case判斷法)
select
convert
(datetime
,convert
(char(8
),dateadd(
month
, datepart(quarter,
@dt)*3
-month
(@dt),
@dt)
,120)+
case
when datepart(quarter,
@dt)in(
1,4)
then
'31'
else
'30'
end)
--c. 季度的最後一天(直接推算法)
select dateadd(
day,-1
,convert
(char(8
),dateadd(
month,1
+datepart(quarter,
@dt)*3
-month
(@dt),
@dt)
,120)+
'1')
--3.指定日期所在月份的第一天或最後一天
--a. 月的第一天
select
convert
(datetime
,convert
(char(8
),@dt,
120)
+'1'
)--b. 月的最後一天
select dateadd(
day,-1
,convert
(char(8
),dateadd(
month,1
,@dt),
120)
+'1'
)--c. 月的最後一天(容易使用的錯誤方法)
select dateadd(
month,1
,dateadd(
day,
-day
(@dt),
@dt)
)--4.指定日期所在周的任意一天
select dateadd(
day,
@number
-datepart(weekday,
@dt)
,@dt
)--5.指定日期所在周的任意星期幾
--a. 星期天做為一周的第1天
select dateadd(
day,
@number
-(datepart(weekday,
@dt)
+@@datefirst-1
)%7,
@dt)
--b. 星期一做為一周的第1天
select dateadd(
day,
@number
-(datepart(weekday,
@dt)
+@@datefirst-2
)%7-
1,@dt)
————————————————
SQL Server 獲取指定日期
查詢一段時期內 在開發應收賬款管理系統時,需要編寫 到賬率考核 模組,一般財務上都是取月底的資料作為考核資料,所以涉及到用sql獲取年末 月末等日期,就在網上收集了一些內容,做乙個記錄 函式引數 功能 getdate 返回系統目前的日期與時間 datediff interval,date1,date...
mysql 獲取指定日期到指定日期 區間段的日期
第一種方法 cross join 就相當於mysql中的迴圈 cross join 把兩張表中的資料進行 n m的組合,即笛卡爾積 這裡的兩張表利用 union all都有5條資料,所以進行 cross join 後 就有25條資料 而指定的日期區間就會從這25條資料總產生 select curda...
php獲取指定日期時間
本周一echo date y m d time date w 0 7 date w 1 24 3600 w為星期幾的數字形式,這裡0為週日 本週日echo date y m d time 7 date w 0 7 date w 24 3600 同樣使用w,以現在與週日相關天數算 上周二echo da...