Sql 计算日期范围内的天数
我试图得到一个查询,该查询将静态数字乘以日期范围内的天数。我遇到的问题是,当选择一天时,它返回的结果是0,而不是1:Ex:Sql 计算日期范围内的天数,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我试图得到一个查询,该查询将静态数字乘以日期范围内的天数。我遇到的问题是,当选择一天时,它返回的结果是0,而不是1:Ex: Declare @Startdate DATE Declare @enddate DATE SET @Startdate='9/1/2013' SET @enddate='9/1/2013' SELECT 1154*(Select DATEDIFF(DAY, @startdate, @enddate)) 本例返回0而不是1。我应该使用DateDiff以外的东西吗 附加说
Declare @Startdate DATE
Declare @enddate DATE
SET @Startdate='9/1/2013'
SET @enddate='9/1/2013'
SELECT 1154*(Select DATEDIFF(DAY, @startdate, @enddate))
本例返回0而不是1。我应该使用DateDiff以外的东西吗
附加说明-这将作为报告的一部分使用,其中日期范围将由调用报告的人员动态输入。只需添加1:
Declare @Startdate DATE
Declare @enddate DATE
SET @Startdate='9/1/2013'
SET @enddate='9/1/2013'
SELECT (DATEDIFF(day,@Startdate,@enddate)+1)*1154
更新,如前所述,不需要内部
选择为什么要返回1
?,这两个日期的天数差为0
。如果要计算天数,只需将1
添加到天数中即可选择1154*(DATEDIFF(DAY,@startdate,@enddate)+1)
如果@startdate='9/1/2013'
和@enddate='9/2/2013'
,它应该返回什么?这也应该是1吗?或者你所有的范围都偏离了1?我希望它包括一天,即使它实际上不是在范围之间。添加范围内第一天的+1帐户。例如,我希望2013年9月1日-2013年9月10日为10,因为它会在范围中包含9/1。它是“选择(1154*(选择DATEDIFF(DAY,@startdate,@enddate)))+1”?@ConsultYarla为什么?”现在的做法是op想要的:将一个静态数字乘以一个日期范围内的天数,这就是证明,这有时是简单的事情。这正是我想要的。谢谢