SQL查询以查找日期是否介于其他两个日期之间

时间:2019-11-28 16:41:16

标签: mysql sql

我有一个要在其上运行SQL查询的表。我想查找所有状态为active并将其interval_type设置为interval的客户。那部分很好,这是我正在努力的下一部分。

我想查找在2019年12月1日至2019年12月6日之间要处理的所有订单。

困难在于,在我的表中,我有“间隔”列,它可以是15-75天之间的数字(并转换为秒),以及它们中的订单的最后处理时间(也是unix时间戳)列称为“ last_processed”。

如果将“时间间隔”(以秒为单位)添加到“ last_processed”(日期)中,那么新的日期是否在12月1日至6日之间?我该怎么做?

SELECT *
FROM subscriptions 
WHERE
    status = 'active' AND
    interval_type = 'interval' AND
    `interval` BETWEEN 1575158400 AND 1575676740;

这是我的表中数据的样子:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以这样做

SELECT *,
FROM_UNIXTIME(last_processed+`interval`)
FROM subscriptions
WHERE status = 'active' AND
    interval_type = 'interval'
    AND (last_processed + `interval`) BETWEEN  UNIX_TIMESTAMP('2019-12-01 00:00:00')
    AND   UNIX_TIMESTAMP('2019-12-06 23:59:59');

DBfiddle Example

下次,请使用文本代替或直接使用dbfiddle示例,这样您就可以更早地得到答案。这就是为什么我发布了一个最小示例的链接。