2014-04-11 56 views
0

在我的大程序的结尾,我以前做过,所以我可以写下例子:“2”获取2月份的销售信息。但是现在我想改变这个,所以我可以写出具体的日期,因为我们想要获取更多的数据。我怎样才能改变这个Dateadd选择日期

  1. 例如在什么我想写:2014年1月29日 - 2014年2月28日

代码:

WHERE isa.sales_date >= Dateadd(mm, (@year - 1900) * 12 + (@month - 1), 
         0) 
     AND isa.sales_date < Dateadd(mm, (@year - 1900) * 12 + @month, 0) 
+0

这个问题几乎解决了! :) – Lebowski

回答

1

尝试: 有两个参数:

@startDate varchar(10) --2014-01-01 
@endDate varchar(10) --2014-01-29 

并修改代码如:

WHERE isa.sales_date >= convert(datetime, @startDate, 120) 
    AND isa.sales_date < DATEADD(DAY, 1, (convert(datetime, @endDate, 120)) 

DATEADD部分将包括直到最后一天结束时的所有销售。

+0

是的,这是我正在寻找伟大的先生!但是当我运行它时,我似乎无法获得任何数据,我需要在哪种格式中编写日期?我也遇到这个错误:Procedure execution failed 22007 - [SQL Server]将varchar数据类型转换为日期时间数据类型导致超出范围的值。 – Lebowski

+0

您传递给startDate和endDate的确切输入是什么?我假设'@startDate = '29 .01.2014''和'@endDate = '28 .02.2014''? – Knightwisp

+0

- 2014-01-01和2014-01-29测试 – Lebowski