दोनों समाधानों में शामिल हैं पिछले महीने का अंतिम दिन और शामिल करें सभी "आज"।
एक date के लिए कॉलम:
SELECT *
FROM tbl
WHERE my_date BETWEEN date_trunc('month', now())::date - 1
AND now()::date
आप एक date . से सादा पूर्णांक मान घटा सकते हैं (लेकिन timestamp . से नहीं ) दिनों को घटाना। यह सबसे आसान और तेज़ तरीका है।
timestamp के लिए कॉलम:
SELECT *
FROM tbl
WHERE my_timestamp >= date_trunc('month', now()) - interval '1 day'
AND my_timestamp < date_trunc('day' , now()) + interval '1 day'
ध्यान दें कि मैं < . का उपयोग करता हूं सटीक परिणाम प्राप्त करने के लिए दूसरी शर्त के लिए ऑपरेटर (~ "कल से पहले")।
मैं date के लिए कास्ट नहीं करता दूसरी क्वेरी में। इसके बजाय मैं एक interval '1 day' जोड़ता हूं , आगे और पीछे कास्ट करने से बचने के लिए।
मैनुअल में दिनांक / समय के प्रकार और कार्यों पर एक नज़र डालें।