我有一个sql表payments,包含以下列:

id|name|amount|reference_number|payment_date|status

以下是一些价值观
1|John Doe|10.00|123456G|2019-02-21 08:00:21|confirmed
2|John Doe|10.00|FHFHgJJ|2019-02-21 10:05:50|pending
3|John Doe|10.00|57GHHFG|2019-02-22 12:10:32|pending
4|John Doe|10.00|GHTYNHJ|2019-02-22 09:52:26|confirmed
5|John Doe|10.00|123G456|2019-02-23 12:22:45|confirmed
6|John Doe|10.00|J123456|2019-02-23 13:00:21|pending

现在我需要获取基于payment_datestatus的选择数据,其中payment_date有时可以是一个范围或相同的日期。
场景1:
SELECT *
FROM payments
WHERE payment_date >= '2019-02-21' AND payment_date <= '2019-02-21' AND status='confirmed'
ORDER BY id DESC

应返回:
1|John Doe|10.00|123456G|2019-02-21 08:00:21|confirmed

斯雷纳里奥2:
SELECT *
FROM payments
WHERE payment_date >= '2019-02-21' AND payment_date <= '2019-02-23' AND status='confirmed'
ORDER BY id DESC

应返回:
1|John Doe|10.00|123456G|2019-02-21 08:00:21|confirmed
4|John Doe|10.00|GHTYNHJ|2019-02-22 09:52:26|confirmed
5|John Doe|10.00|123G456|2019-02-23 12:22:45|confirmed

有什么办法吗?

最佳答案

正如@strawberry建议的那样,使用时间和日期来获取数据

SELECT *
FROM payments
WHERE payment_date >= '2019-02-21 00:00:00' AND payment_date <= '2019-02-21
23:59:59' AND status='confirmed'
ORDER BY id DESC

关于mysql - SQL在特定日期和附加字段过滤器之间选择数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54839412/

10-13 04:46
查看更多