Создание даты в SQL между двумя датами

Я работаю в браузере БД для 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 я получал сделки только с MATURITY_DATE в период между 2018-06-22 и 2099-12-30. Однако я не совсем уверен, какую строку добавить для достижения этой цели. Тем не менее, когда я добавил строку

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

выше моего заказа оператором и ниже моего оператора where я не получил никакого вывода при запуске. Как бы я сделал это правильно?

1 ответ

Я думаю, что вы можете попробовать использовать AND с BETWEEN в where caluse.

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
Другие вопросы по тегам