SQL

时间:2015-07-30 21:30:56

标签: sql date

如何计算SQL中两个日期之间的完整月份(无部分)?结果应如下:

  

开始日期|结束日期|满月    2015年5月2日| 2015年6月29日| 0
5/01/2015 | 6/30/2015 | 2
  5/01/2015 | 2015年6月5日| 1
5/31/2015 | 6/30/2015 | 1
2/01/2015 | 2015年2月28日| 1
2/27/2015 | 2015年3月30日| 0
2/27/2015 | 2015年3月31日| 1

到目前为止我的代码:

Select startDate [Start Date],
endDate [End Date],
DATEDIFF(MM,startDate,endDate) + CASE
    WHEN DAY(endDate) =DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,endDate),0)))
    THEN 1 
    ELSE 0  
END - CASE
    WHEN DAY(startDate) = 1  
    THEN 0  
    ELSE 1  
END [Full Month]
FROM table

我需要在另一个多级嵌套CASE语句中使用它,所以如果可能的话,要避免使用其他CASE语句

其他详情:

我正在为第三方软件编写报告,并不总是使用相同的RDBMS,主要是旧版本的MS SQL Server。还希望报告本身的代码而不是存储在数据库中。

1 个答案:

答案 0 :(得分:1)

我会这样做:

 @IBAction func followButtonTapped(sender: UIButton) {

    var followers:PFObject = PFObject(className: "Followers")
    followers["user"] = userIds[sender.tag] // Problem is here.. i want "user" column to be filled with userIds of users as Pointers not Strings. What should i do here??
    followers["follower"] = PFUser.currentUser()

    followers.saveInBackground()

}

http://sqlfiddle.com/#!6/be17e/14

http://sqlfiddle.com/#!3/be17e/3(MSSQL Server 2008)