当前位置: 代码迷 >> Sql Server >> 看不懂的获取当月天数语句,该怎么处理
  详细解决方案

看不懂的获取当月天数语句,该怎么处理

热度:35   发布时间:2016-04-27 14:33:37.0
看不懂的获取当月天数语句
看不懂的获取当月天数语句
select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)
+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))
可正确运行,但是我看不懂,哪位可解释一下,

------解决方案--------------------
先生成当月第一天然后加一个月减一天就等于当月的最后一天呀

datepart(dd,当月最后一天的日期 ) 这不就是一个月的总天数
------解决方案--------------------
select 
datepart(dd,
dateadd(dd,-1,
dateadd(mm,1,
cast(cast(year(getdate()) as varchar) + '-' + cast(month(getdate()) as varchar) + '-01' as datetime)
)
)


=============取当月1号======比如2008-07-01===========
cast(cast(year(getdate()) as varchar) + '-' + cast(month(getdate()) as varchar) + '-01' as datetime

============dateadd(mm,1,'2008-07-01') 下一月(2008-08-01)======

============dateadd(dd,1,'2008-08-01') 这个月(2008-07-31)======

============datepart(dd,'2008-07-31') 取天31, 那也就是本月天数=======

------解决方案--------------------
SQL code
select datepart(d,dateadd(d,-1,convert(char(8),dateadd(month,1,getdate()),120)+'01'))                                               ---当前月份加1,即下个月) -                                   -------------取出年月,再加上01,即下个月的第一天----                  ------------------在此日期上减去一天,即上个月的最后一天-----------       --------------------------------取出本月的天数---------------------------------
  相关解决方案