1)、select dateadd(day,1-(datepart(weekday,getdate())+@@datefirst-1)%7,getdate())
sql獲取第一天和最後一天
--上週周一
select dateadd(wk, datediff(wk,0,dateadd(dd, -7, getdate()) ), 0)
--上週週日
select dateadd(wk, datediff(wk,0,dateadd(dd, -1, getdate()) ), 0)
--本週周一
select dateadd(wk, datediff(wk,0,getdate()), 0)
--本週週日
select dateadd(wk, datediff(wk,0,dateadd(dd, 7, getdate()) ), 0)
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...
PHP 獲取本月 本週第一天 最
year date y month date m allday date t strat time strtotime year.month.1 end time strtotime year.month.allday echo date y m d strat time echo date y m...
PHP獲取本週第一天和最後一天
本週的第一天和最後一天 如下 複製 date new datetime date modify this week first day of week date format y m d date modify this week 6 days end day of week date format...