我有一个要在其上运行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;
这是我的表中数据的样子:
答案 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示例,这样您就可以更早地得到答案。这就是为什么我发布了一个最小示例的链接。