首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要根据开始日期输入获取数据

问需要根据开始日期输入获取数据
EN

Stack Overflow用户
提问于 2011-12-09 01:39:00
回答 2查看 222关注 0票数 2

我正在尝试根据我的开始日期输入来检索数据。如果用户选择的开始日期是11-27-2011,结束日期是12/04/2011,那么我的数据集返回的日期将是整个11月。如果他们选择开始日期10/01/2011,那么我的数据集将返回从1月1日到当前日期的数据。

我已经设法让第二条/第三条语句工作了,但当我试图添加用于从1月1日开始检索数据的过滤器时,它出错了(查询中的第一个IF语句)。第一个IF语句检查@BeginningDate是否小于前一个月。如果是,那么它应该检索年份数据,否则它将从那里继续。以下是我对日期的查询:

代码语言:javascript
复制
Declare @startdate  datetime
Declare @enddate  datetime
Declare @BeginningDate datetime

set @BeginningDate = '12-01-2011'

IF Month(@BeginningDate) < (Month(GETDATE())-1)
BEGIN
set @startdate = DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
set @enddate = dateadd(day, datediff(day, 0, getdate()), 0)
END

IF Month(@BeginningDate) = (Month(GETDATE())-1)
BEGIN
set @startdate = dateadd (mm,-1,DATEADD(dd,-(DAY(DATEADD(mm,1,convert(varchar(10),getdate(),111)))-1),DATEADD(mm,0,convert(varchar(10),getdate(),111))))--BEGINNING OF PRIOR MONTH
set @enddate =DATEADD(dd,-1,DATEADD(mm, DATEDIFF(m,0,convert(varchar(10),getdate(),111)),0))--END OF PRIOR MONTH
END

ELSE
IF Month(@BeginningDate) = (Month(GETDATE())
BEGIN
set @startdate = dateadd(month, datediff(month, 0, dateadd(day, datediff(day, 1, getdate()), 0)), 0)--BEGINNING OF CURRENT MONTH
set @enddate = dateadd(day, datediff(day, 0, getdate()), 0)--THROUGH CURRENT MONTH (TODAY)
END

正如我所说的,我可以设法让查询与其中两个语句一起工作,但是当我添加第一个IF,然后解析它时,我得到了这样的消息:

​

​

第15行是最后一条ELSE语句中的“BEGIN”。我是不是想做太多的IF/ELSE语句?我以前从来没有这样做过,就像在IF/ELSE中使用这些日期参数一样。

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-09 01:45:31

看起来IF Month(@BeginningDate) = (Month(GETDATE())这行缺了一个)

把它改成这样

IF Month(@BeginningDate) = (Month(GETDATE())),看看它现在是否正常工作。

票数 2
EN

Stack Overflow用户

发布于 2011-12-09 01:45:26

我相信您的括号是不匹配的-在您的最后一块中,尝试

代码语言:javascript
复制
IF Month(@BeginningDate) = (Month(GETDATE()))

或

代码语言:javascript
复制
IF Month(@BeginningDate) = Month(GETDATE())

不是期末考试

代码语言:javascript
复制
IF Month(@BeginningDate) = (Month(GETDATE())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8435192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档