Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 计算日期范围内的天数_Sql_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

Sql 计算日期范围内的天数

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以外的东西吗 附加说

我试图得到一个查询,该查询将静态数字乘以日期范围内的天数。我遇到的问题是,当选择一天时,它返回的结果是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以外的东西吗

附加说明-这将作为报告的一部分使用,其中日期范围将由调用报告的人员动态输入。

只需添加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想要的:将一个静态数字乘以一个日期范围内的天数,这就是证明,这有时是简单的事情。这正是我想要的。谢谢