SQL獲取第一天最後一天

2022-02-09 00:25:27 字數 1874 閱讀 8086

declare 

@dtdatetime

set

@dt=

getdate

()declare

@number int

set

@number=3

--1.指定日期該年的第一天或最後一天

--a. 年的第一天

selectconvert(char(5),@dt,120)+

'1-1'--

b. 年的最後一天

selectconvert(char(5),@dt,120)+

'12-31'--

2.指定日期所在季度的第一天或最後一天

--a. 季度的第一天

selectconvert(datetime

,

convert(char(8

),

dateadd(month

,

datepart(quarter,@dt)*3-

month(@dt)-2,

@dt),

120)+'1

')--b. 季度的最後一天(case判斷法)

selectconvert(datetime

,

convert(char(8

),

dateadd(month

,

datepart(quarter,@dt)*3-

month(@dt

),

@dt),

120)

+casewhendatepart(quarter,@dt) in(1,4

)

then'31

'else'30

'end)--

c. 季度的最後一天(直接推算法)

selectdateadd(day,-1,

convert(char(8

),

dateadd(month

, 1+

datepart(quarter,@dt)*3-

month(@dt

),

@dt),

120)+'1

')--3.指定日期所在月份的第一天或最後一天

--a. 月的第一天

selectconvert(datetime,convert(char(8),@dt,120)+'1

')--b. 月的最後一天

selectdateadd(day,-

1,convert(char(8),dateadd(month,1,@dt),120)+'1

')--c. 月的最後一天(容易使用的錯誤方法)

selectdateadd(month,1,dateadd(day,-

day(@dt),@dt

))--

4.指定日期所在周的任意一天

selectdateadd(day,@number

-datepart(weekday,@dt),@dt)--

5.指定日期所在周的任意星期幾

--a. 星期天做為一周的第1天

selectdateadd(day,@number

-(datepart(weekday,@dt)+

@@datefirst

-1)%

7,@dt)--

b. 星期一做為一周的第1天

selectdateadd(day,@number

-(datepart(weekday,@dt)+

@@datefirst

-2)%7-

1,@dt)

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

JAVA獲取月第一天 最後一天

dateformat format new dateformat yyyy mm dd 獲取前乙個月的第一天 calendar cal 1 calendar.getinstance 獲取當前日期 cal 1.add calendar.month,1 cal 1.set calendar.day of...

python 獲取月份第一天最後一天

import time,datetime 當前時間 now time datetime.datetime.now now time mk time.mktime now time.timetuple 當前時間戳 下月第一天最後一秒時間 month now time.month if month 12...