【问题标题】:How to get records based on month and Year (Ignore day) - SQL Server如何根据月份和年份获取记录(忽略日期) - SQL Server
【发布时间】:2016-03-26 20:07:25
【问题描述】:

我想写一个查询,我可以检查付款是否在证书日期之前完成。

例如,我有两列日期。

CertificateDate : 2016-03-26
LastPaymentDate : 2015-08-06

在这种情况下,付款没有完成,因为证书日期超过了最后一次付款。那么我如何检查这个条件,我想要这个记录。

CertificateDate : 2016-03-26
LastPaymentDate : 2016-04-15

在这种情况下,付款已完成,所以这不应该出现在我的查询结果中。

我可以使用 datePart = Month + Year 但我发现很难将 查询转移到该记录。

查询:我想获取到 2016 年 3 月才付款的所有记录。如果生成了证书,那么付款应该到该证书日期。

任何帮助表示赞赏。

【问题讨论】:

    标签: sql sql-server-2008


    【解决方案1】:

    如果您只想比较年份和月份部分,可以使用日期部分功能。有一种简单的方法:

    where year(LastPaymentDate) * 100 + month(LastPaymentDate) <= 201603
    

    但是,我认为只使用日期算术会更容易:

    where LastPaymentDate < '2016-04-01'
    

    where LastPaymentDate <  dateadd(day, 1, '2016-03-31')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 2020-05-03
      • 2021-12-16
      • 1970-01-01
      • 2010-09-07
      • 2012-02-16
      • 1970-01-01
      相关资源
      最近更新 更多