1

我正在尝试从当前月份的日期获取两个最近的事件并将其显示在我的主页上。但是,如果当月的事件不存在,我会得到一个一般性错误。如果没有找到当前月份的事件,如何修改查询以检查下个月?

dt = g1.return_dt("select  top  2  image_url,event_name,substring(description,1,80) as  description,Convert(nvarchar,Table_name.open_date,106) as open_date  from  Table_name where MONTH(open_date)=MONTH(getDate()) and YEAR(open_date)=YEAR(getDate()) order  by ID  desc");
4

1 回答 1

0

只需将 WHERE 语句替换为大或相等条件即可:

MONTH(open_date)>=MONTH(getDate()) and YEAR(open_date)>=YEAR(getDate())

在这种情况下,如果当月没有记录,那么您将获得下个月的 TOP 2 记录。

更新:或者如果当月只存在一条记录并且您只需要输出它。

where ( MONTH(open_date)=MONTH(getDate()) 
        and YEAR(open_date)=YEAR(getDate())
      )
      OR 
      (
        NOT EXISTS(select * from Table_name 
                    where MONTH(open_date)=MONTH(getDate()) 
                          and YEAR(open_date)=YEAR(getDate()) 
                   ) 
        AND 
        (MONTH(open_date)>=MONTH(getDate()) and YEAR(open_date)>=YEAR(getDate()))
      )
于 2013-11-01T07:28:42.580 回答