sql獲取第一天和最後一天
declare @dt datetime
set @dt=getdate()
declare @number int
set @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 Server中獲取第一天和最後一天
1.乙個月第一天的 select dateadd mm,datediff mm,0,getdate 0 2.本週的星期一 select dateadd wk,datediff wk,0,getdate 0 3.一年的第一天 select dateadd yy,datediff yy,0,getdat...
獲取月份的第一天和最後一天
在做資料統計的時候會用到按月統計的問題 總結歸納 一般下個月初會統計上個月的一些運營資料,這樣就需要月初和月末的情況 1.獲取上個月第一天及最後一天.echo date y m d strtotime date y m 01 1 month 計算出本月第一天再減乙個月 上個月最後一天 echo da...