您的位置:首页 > 产品设计 > UI/UE

Questions[SQL]:Calculate the Number of Days in a Month

2008-10-13 10:21 447 查看
Q:Can you use a batch SQL or store procedure to calculating the Number of Days in a Month?

A:

解法一:使用CTE,结构清晰

with arg0 as

(

--计算当月第一天

select cast(

cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01'

as datetime) as nowdt

),

arg1 as

(

--计算下月第一天

select dateadd(mm,1,nowdt) as dt from arg0

),

arg2 as

(

--计算下月减1,即本月最后一天

select dateadd(dd,-1, dt) as dt from arg1

),

arg3 as

(

--取天数部分

select datepart(dd, dt) as daies from arg2

)

select * from arg3

解法二:使用变量

declare @now datetime

set @now= cast(

cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01'

as datetime)

declare @day int

set @day = datepart(dd, dateadd(dd,-1, dateadd(mm,1,@now)))

select @day

解法三:单一语句

select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐