【问题标题】:how to filter by dates after the current date?如何按当前日期之后的日期过滤?
【发布时间】:2019-05-21 11:19:25
【问题描述】:

我想按当前日期之后的日期过滤到期日期。问题是当前数据的日期分三列; exp0yearexp0moexp0da

我尝试放置多个 where 子句,exp0mo > 4 的问题使日期不符合 1/1/2020

Select exp0yr,exp0mo,exp0da,policy0num,zip0post,add0line01,add0line03,add0line04,profit0ctr
from ni.pmsp0200
where exp0yr>118  and exp0mo>04 and exp0da>20 and profit0ctr='eoh'
group by exp0yr,exp0mo,exp0da,policy0num,zip0post,add0line01,add0line03,add0line04,profit0ctr

我希望得到05/21/2019 之后的日期,但我得到了除01/01/2020-05/20/2020 之外的所有日期。

【问题讨论】:

标签: sql-server where-clause


【解决方案1】:

如果你使用 sql server 2012+ 可以获取当前数据日期as follow

datefromparts(exp0yr, exp0mo, exp0da)

否则使用这样的东西:

 SELECT CAST(CONCAT(CAST(@exp0yr AS VARCHAR(4)), '-',CAST(exp0mo AS VARCHAR(2)), '-',CAST(exp0daAS VARCHAR(2))) AS DATE)

你的脚本变成了这样

declare @mydate as date
set @mydate='2019/05/21' --Put your target date here
    Select exp0yr,exp0mo,exp0da,policy0num,zip0post,add0line01,add0line03,add0line04,profit0ctr
    from ni.pmsp0200
    where datefromparts(exp0yr, exp0mo, exp0da)>@mydate and profit0ctr='eoh'
    group by exp0yr,exp0mo,exp0da,policy0num,zip0post,add0line01,add0line03,add0line04,profit0ctr

【讨论】:

    【解决方案2】:

    试试这个

    --Temp table 
    CREATE TABLE #Test
    (cYear  VARCHAR(4) NOT NULL, 
     cMonth VARCHAR(2) NOT NULL , 
     cDay   VARCHAR(2) NOT NULL 
    );
    --Sample data
    INSERT INTO #Test
           SELECT '2019', 
                  '04', 
                  '01'
           UNION ALL
           SELECT '2018', 
                  '06', 
                  '01';
    --Calculated column - you can define prefix, such as leading zeros
    ALTER TABLE #TEST
    ADD calcDate AS CYEAR + CMONTH +  CDAY PERSISTED
    
    
    --Shows only one record
    SELECT *
    FROM #Test
    WHERE calcDate BETWEEN '20190101' AND '20191231';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-11
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多