当前位置: 代码迷 >> Sql Server >> 请问一个简单的函数有关问题
  详细解决方案

请问一个简单的函数有关问题

热度:76   发布时间:2016-04-27 14:31:33.0
请教一个简单的函数问题
在SQL中 有没有一个函数可以得到本月的天数。 
意思就是 DECLARE @YEAR INT,
  @MONTH INT,
  @IDATE DATETIME

  SET @YEAR=2012
  SET @MONTH=3 //也许是个随机月 1—12
  SET @IDATE=CAST(@YEAR AS VARCHAR(4)) + '-' + CAST(@MONTH AS VARCHAR(2)) + '-31' //现在是我随知道的知道这个月有31天。如果是个随即月份我该怎么得出本月一共有多少天.



------解决方案--------------------
SQL code
declare @s datetimeset @s = '2012-01-17'select dateadd(day,-1,left(convert(varchar(10),dateadd(month,1,@s),120),7) + '-01')
------解决方案--------------------
SQL code
--获取8月份有多少天--用下个月的第一天减去这个月的第一天并转换成int型就能得到这个月有多少天select Convert(int, convert(datetime,'2011-09-01 00:00:00')-convert(datetime,'2011-08-01 00:00:00'))
------解决方案--------------------
SQL code
declare @term datetimeset @term='2012-01-17'select datediff(day,dateadd(day,1-day(@term),@term),dateadd(day,-1,dateadd(month,1,dateadd(day,1-day(@term),@term))))+1
------解决方案--------------------
eg: 
SELECT DATEDIFF(DAY, '2012-02-01', '2012-03-01') 
得到2012年2月份的天数
------解决方案--------------------
select DATEDIFF(DAY,cast(convert(varchar(7),GETDATE(),120)+'-01' as datetime),
cast(convert(varchar(7),dateadd(month,1,getdate()),120)+'-01' as datetime))
思路就是下月第一天减本月第一天
  相关解决方案