當前位置:首頁 » 編程語言 » sql取每月最後一天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql取每月最後一天

發布時間: 2022-09-27 04:33:09

『壹』 用sql取每個月的最後一天,怎麼寫

selectday(dateadd(day,-1,convert(varchar(7),dateadd(month,1,getdate()),120)+'-01'))

『貳』 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@numberint
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取每個月的最後一天,怎麼寫

Oracle : select last_day(sysdate) from al ;
Mysql : SELECT LAST_DAY('2003-02-05');

『伍』 sql如何取某年某月的第一天和最後一天

SELECT CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)--第一天

SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)))--最後一天

原理:第一天肯定是1號拉,最後一天是下個月第一天減一天。

本月第一天

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate()), 0)) as mouthlastdate

下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as mouthlastdate

下下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+2, 0)) as mouthlastdate

(5)sql取每月最後一天擴展閱讀

sqlserver 時間格式函數詳細

--getdate 獲取當前時間

select getdate()

--dateadd 原有時間加: 2013-02-17 13:20:16 此時間加12個月

select dateadd(MONTH,12,'2013-02-17 13:20:16') --返回:2014-02-17 13:20:16.000 (參數month可以改為 day,year等日期加相應的值)

--datediff 兩個時間的差 (後面-前面=返回值)

select datediff(day,'2013-02-01','2013-02-18') --返回:17 (參數day可以改為 month,year等日期加相應的值)

--datepart 獲取日期的某個部分整數

select DATEPART(month, '2013-2-17') --返回 2 (參數month可以改為 day,year等日期加相應的值)

--datename 獲取指定部位的字元串

select datename(weekday, '2013-2-17') --返回 星期日 (參數weekday可以改為 day,year等日期加相應的值)

--day(), month(),year() 獲取指定部位的字元串

select day('2013-2-15') --返回15

『陸』 sql 語句 怎麼獲取指定月的第一天和最後一天

first_day()得到一個月中的第一天:如first_day(to_date('2008-5-22','yyyy-mm-dd')) 結果:2008-5-1
last_day()得到一個月最後的一天:如:last_day(to_date('2008-5-22','yyyy-mm-dd')) 結果:2008-5-31 ;

『柒』 sql獲取時間區間內每月第一天和最後一天

如:給定的年月格式為20157,代表2015年7月。

取某月第一天:
SELECT CAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01') AS DATETIME)

結果:

『捌』 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語句 如何取得指定月份的最後一天的日期

-- 建函數
create function dbo.fn_getmonthlastday
(@y int, --> 指定年份
@m int --> 指定月份
) returns varchar(20)
as
begin
declare @x varchar(20)
select @x=convert(varchar,
dateadd(d,-1,dateadd(m,1,rtrim(@y)+'-'+rtrim(@m)+'-01')),
111)
return @x
end