首页 > 解决方案 > 如何在 PostgreSQL 中获取两个日期范围之间的数据?

问题描述

我在 PostgreSQL SQL 中查询两个日期范围之间的数据,但它没有给我预期的结果。

select
    pi_serial,
    amount_in_local_currency,
    status,
    proforma_invoice_date
from proforma_invoice
where created_by = 25
    and proforma_invoice_date BETWEEN '03/01/2018' and '09/03/2018'
order by proforma_invoice_date

在此处输入图像描述

现在查看查询和列 proforma_invoice_date。在此查询中,我正在搜索 03/01/2018 和 09/03/2018 之间的数据。日期格式为 (DD/MM/YYYY) 并且字符不同。我在这张照片中得到的结果。它只是根据唯一的一天给我结果,而不是整个日期格式。我尝试了很多日期转换,字符因日期而异。但我没有得到任何预期的结果

标签: postgresql

解决方案


您的查询绝对没问题。只需将其更改如下

select pi_serial, amount_in_local_currency, status, proforma_invoice_date 
from proforma_invoice
where created_by = 25 
  and to_date(proforma_invoice_date, 'DD/MM/YYYY')  BETWEEN to_date('03/01/2018', 'DD/MM/YYYY') and to_date('09/03/2018', 'DD/MM/YYYY') 
order by proforma_invoice_date

推荐阅读