我正在尝试从当前月份的日期中获取最近的两个事件并将其显示在我的主页上。但是,如果当前月份的事件不存在,我会收到一般错误。 如果找不到当前月份的事件,如何修改查询以检查下个月?
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");
答案 0 :(得分: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()))
)