दोनों समाधानों में शामिल हैं पिछले महीने का अंतिम दिन और शामिल करें सभी "आज"।
एक 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'
जोड़ता हूं , आगे और पीछे कास्ट करने से बचने के लिए।
मैनुअल में दिनांक / समय के प्रकार और कार्यों पर एक नज़र डालें।