sql獲取本週的內第一天 常用sql日期處理方法

2021-05-28 11:58:13 字數 1938 閱讀 2278

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...