用SQL获取某个某年某个月份的最后一天的日期

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:25:59
比如说我输入的是2008年9月,那么怎样用SQL查处2008年9月最后一天的日期呢

/*
思路:首先把某日期的月份加一,再把结果的日期减一
*/
DECLARE @Date AS DATETIME
DECLARE @DateChar AS nVarChar(19)
--给日期赋值
SET @Date = GetDate()
--返回你需要的
SET @DateChar = CONVERT(Char(8), @Date, 120) + '01 00:00:00'
SELECT DATEADD(d, -1, DATEADD(m, 1, CAST(@DateChar AS DATETIME)))

SELECT last_day(to_date('200809','yyyymm' ))FROM DUAL

如果是系统日期
用SELECT last_day(sysdate) FROM DUAL 就可以了

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,convert(varchar(4),getdate(),120)+'-09-01')+1, 0))
或者
select dateadd(dd,-1,DATEADD(mm,1,convert(varchar(4),getdate(),120)+'-09-01'))

09可以换成变量

LAST_DAY(d) 返回指定时间所在月的最后一天
SELECT last_day(sysdate) FROM DUAL;

MARK~才来晚了一步就这么多人答了~