我需要寫這種代碼
BETWEEN '2022-02-01' AND '2022-02-28'
但要相對并選擇上個月
我試過這樣
BETWEEN TO_CHAR(current_date - interval '1' month, 'yyyy-mm-01')::date
AND TO_CHAR(TO_CHAR(current_date, 'yyyy-mm-01')::date - interval '1' day, 'yyyy-mm-dd')::date
但我認為可能有更好的解決方案。
uj5u.com熱心網友回復:
不要將日期值轉換為字串進行比較。始終使用“真實”日期值。
要獲得上個月的開始,您可以使用date_trunc()和減去間隔的組合
上個月的開始是“本月”的開始減去一個月:
date_trunc('month', current_date) - interval '1 month'
上個月的月底是本月初減去一天:
date_trunc('month', current_date) - interval '1 day'
您沒有告訴我們您的列具有要比較的資料型別,但通常最好使用>=and<而不是between-特別是如果該列是timestamp.
where the_column >= date_trunc('month', current_date) - interval '1 month'
and the_column < date_trunc('month', current_date)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/441127.html
標籤:sql PostgreSQL 日期
上一篇:SAS格式DATE9。到DDMMYYd10。在選擇陳述句中
下一篇:在R中計算每個月的唯一值
