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獲取第一天最後一天
declare dtdatetime set dt getdate declare number int set number 3 1 指定日期該年的第一天或最後一天 a.年的第一天 selectconvert char 5 dt,120 1 1 b.年的最後一天 selectconvert cha...
SQL獲取第一天和最後一天
sql獲取第一天和最後一天 declare dt datetime set dt getdate declare number int set number 3 1 指定日期該年的第一天或最後一天 a.年的第一天 select convert char 5 dt,120 1 1 b.年的最後一天 s...
前端記錄最後一天
async await的理解使用 let asyncfn async console.log data.name 列印出的是my name is data let notasyncfn console.log data.name 列印出的是undefined 因為data此時還是null await...