0

我在 DB Browser for SQLite 中工作,并编写了一个查询:

SELECT "Trade Details 2".TRADE_TYPOLOGY,
        "Trade Details 2".CONTRACT_ID,
        DATE("Trade Details 2".START_DATE) as START_DATE,
        DATE(substr("Trade Details 2".MATURITY_DATE, 0, 5) || '-' || 
        substr("Trade Details 2".MATURITY_DATE, 5,2) || '-' ||   
        substr("Trade Details 
        2".MATURITY_DATE, 7, 9)) as MATURITY_DATE,
        "Trade Details 2".NOTIONAL1,
        "Trade Details 2".COUNTERPARTYNAME,
        "Trade Details".TERM
        FROM "Trade Details 2"
        JOIN "Trade Details"
        WHERE "Trade Details 2".CONTRACT_ID="Trade Details".FC_ID
        ORDER BY "Trade Details 2".MATURITY_DATE desc

我的目标是量化 MATURITY_DATE,这样当我运行 SQL 查询时,我只能在 2018 年 6 月 22 日和 2099 年 12 月 30 日之间获得与 MATURITY_DATE 的交易。但是,我不确定要添加哪条线才能实现这一目标。但是,当我添加该行时

2099-12-30>"Trade Details 2".MATURITY_DATE>2018-06-22

在我的 order by 语句之上和 where 语句之下,我运行它时没有得到任何输出。我将如何正确地做到这一点?

4

1 回答 1

1

我认为您可以尝试使用ANDwith BETWEENin wherecaluse。

SELECT "Trade Details 2".TRADE_TYPOLOGY,
        "Trade Details 2".CONTRACT_ID,
        DATE("Trade Details 2".START_DATE) as START_DATE,
        DATE(substr("Trade Details 2".MATURITY_DATE, 0, 5) || '-' || 
        substr("Trade Details 2".MATURITY_DATE, 5,2) || '-' ||   
        substr("Trade Details 
        2".MATURITY_DATE, 7, 9)) as MATURITY_DATE,
        "Trade Details 2".NOTIONAL1,
        "Trade Details 2".COUNTERPARTYNAME,
        "Trade Details".TERM
        FROM "Trade Details 2"
        JOIN "Trade Details"
WHERE 
   "Trade Details 2".CONTRACT_ID="Trade Details".FC_ID
AND 
   "Trade Details 2".MATURITY_DATE BETWEEN '2018-06-22' AND '2099-12-30'
ORDER BY "Trade Details 2".MATURITY_DATE desc

或使用大于和小于

SELECT "Trade Details 2".TRADE_TYPOLOGY,
        "Trade Details 2".CONTRACT_ID,
        DATE("Trade Details 2".START_DATE) as START_DATE,
        DATE(substr("Trade Details 2".MATURITY_DATE, 0, 5) || '-' || 
        substr("Trade Details 2".MATURITY_DATE, 5,2) || '-' ||   
        substr("Trade Details 
        2".MATURITY_DATE, 7, 9)) as MATURITY_DATE,
        "Trade Details 2".NOTIONAL1,
        "Trade Details 2".COUNTERPARTYNAME,
        "Trade Details".TERM
        FROM "Trade Details 2"
        JOIN "Trade Details"
WHERE 
   "Trade Details 2".CONTRACT_ID="Trade Details".FC_ID
AND 
   "Trade Details 2".MATURITY_DATE > '2018-06-22' AND   "Trade Details 2".MATURITY_DATE < '2099-12-30'
ORDER BY "Trade Details 2".MATURITY_DATE desc
于 2018-08-13T15:12:03.150 回答