【发布时间】:2014-01-09 20:22:02
【问题描述】:
I'm trying to get a query that will multiply a static number by the amount of days in a date range the problem i'm having is that when a single day is selected it returns a result of 0 instead of 1:例如:
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?,这两个日期的天数差是0。如果您想计算天数,只需添加1即可。SELECT 1154*(DATEDIFF(DAY, @startdate, @enddate)+1) -
如果
@startdate='9/1/2013'和@enddate='9/2/2013'应该返回什么?这也应该是1吗?还是你所有的范围都相差 1? -
我希望它包括一天,即使它实际上不是“介于”范围之间。为范围内的第一天添加 +1 帐户。例如,我希望 9/1/2013 - 9/10/2013 为 10,因为它将在范围内包含 9/1
标签: sql sql-server sql-server-2008 tsql