根据月份和年份以及状态获取上一年的记录

Posted

技术标签:

【中文标题】根据月份和年份以及状态获取上一年的记录【英文标题】:get records from previous year based on month and year and status 【发布时间】:2017-05-30 11:52:06 【问题描述】:

我有下表:

创建的具有日期的列 具有打开、关闭、已解决等值的状态列

我只想获取那些处于打开状态并且创造价值是上个月的记录。如果年份也发生变化,我想注意一下。点赞创建日期为 2016-12-31,当前日期为 2017-01-01

以下是我的查询:

select (case when Status_Flag = 'open' and (DATEPART(MONTH,Created) = DATEPART(Month,GetDate()) -1 OR 
(DATEPART(MONTH,Created) = DATEPART(Month,GetDate()) -1 OR DATEPART(YEAR,Created) < DATEPART(YEAR,GetDate()))) then 1 else 0 end) as Inc_BroughtForward from <table_name> where status = 'open'

请告诉我我的逻辑是否正确?

【问题讨论】:

【参考方案1】:
select *
from <table_name>
where status = 'open'
    and Created between DATEADD(month, -2, DATEADD(day, 1, EOMONTH(GETDATE()))) and DATEADD(day, -1, DATEADD(month, -1, DATEADD(day, 1, (EOMONTH(GETDATE())))))

【讨论】:

【参考方案2】:

找到一个解决方案:

select

(case when Status = 'open' and DATEDIFF(MONTH, Created, GETDATE()) = 1  then 1 else 0 end) as Inc_BroughtForward 

from <table_name>

【讨论】:

以上是关于根据月份和年份以及状态获取上一年的记录的主要内容,如果未能解决你的问题,请参考以下文章

在MySql中、怎样根据年份或者月份查询数据表中的数据?

如何在rails中获得重复的月份和年份匹配记录?

如何根据年份和月份进行排名?

在MySql中、怎样根据年份或者月份查询数据表中的数据?

用java编写:输入任意年份和月份,输出对应月份的天数。

js获取上一个月份