/*
思路:首先把某日期的月份加一,再把结果的日期减一
*/
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)))
LAST_DAY(d) 返回指定时间所在月的最后一天
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可以换成变量
SELECT last_day(to_date('200809','yyyymm' ))FROM DUAL
如果是系统日期
用SELECT last_day(sysdate) FROM DUAL 就可以了
MARK~才来晚了一步就这么多人答了~