SQL数据库语言 求某个日期所在月份有多少天

来源:百度知道 编辑:UC知道 时间:2024/09/23 00:24:48

DECLARE @DATE DATETIME
SET @DATE='2007-02-02'
SELECT DATEDIFF(DAY,@DATE,DATEADD(MONTH,1,@DATE))

原理:本月的今天到下月的今天就是本月的天数,比楼上的都简单,:),LZ自己可以试试

Oracle的方法
#0为你要填的日期
得到MonthEndDate的方法
TRUNC(LAST_DA
Y(#0))

得到MonthStartDate的方法
TRUNC(ADD_MO
NTHS((LAST_DAY
(#0) + 1), -1))

select day(cast(convert(varchar(6),dateadd(mm,1,日期),112)+'01' as datetime)-1)
原理:本月的下一个月的1号的前一天就是本月的天数

二楼的得写成这个
select day(cast(convert(varchar(6),dateadd(mm,1,getdate()),112)+'01' as datetime)-1)
这样算也行
select DATEDIFF(dd, cast(convert(varchar(6),getdate(),112)+'01' as datetime) ,
cast(convert(varchar(6),dateadd(mm,1,getdate()),112)+'01' as datetime))
原理是本月的一号和下月一号的差就是本月的天数
肯定是正确的

至于本月今天到下月今天肯定是错的
因为有的月没有今天(比如今天是29,30,31)