postgresql查詢每個月的最后一天日期并對未查到的日期結(jié)果補0(操作示例)
postgresql查詢每個月的最后一天日期,并對未查到的日期結(jié)果補0
說明
遇到了一個需求,需要查詢每個月月底的最后一天數(shù)據(jù),并對未查到的日期結(jié)果補0。
pgsql需要使用函數(shù)如下
使用date_trunc()函數(shù)找到指定月第一天
然后對該日期先加一個月在減一個月就能得到你傳給的日期的最后一天日期
然后在使用generate_series()函數(shù):你發(fā)現(xiàn)這樣寫不能得到自己的期望結(jié)果,有些日期不準(zhǔn)確。
最后generate_series()函數(shù)結(jié)合date_trunc()函數(shù)就能達到期望結(jié)果:
select to_char((select date_trunc('month',date(t))+interval '1 month'- interval '1 day'),'yyyy-MM-dd') date from generate_series('2021-06-30'::date,'2022-05-31'::date,'1 month') t
然后再將日期與你需要查詢的表的日期相關(guān)聯(lián),使用coalesce(字段,0)函數(shù)對值為空進行補0操作,就能查詢出你期望的結(jié)果。
實現(xiàn)
在實際開發(fā)中只需要將2個日期2021-06-30和2022-05-31換成對應(yīng)的開始日期參數(shù)和結(jié)束日期參數(shù),那么這個統(tǒng)計結(jié)果就是符合期望的結(jié)果的了。
SELECT a.time,COALESCE(b.counts,0) as counts from ( SELECT to_char((select date_trunc('month',date(t))+interval '1 month'- interval '1 day'),'yyyy-MM-dd') time FROM generate_series('2021-06-30'::date,'2022-05-31','1 month') t GROUP by time ORDER BY time ) as a LEFT JOIN ( select to_char(starttime,'yyyy-MM-dd') AS starttime, count(starttime) AS counts from rnodbv2.v2_m_ctest_log_info --where to_char(starttime,'yyyy-MM-dd')>='2021-06-30' and to_char(starttime,'yyyy-MM-dd')<='2022-05-31' GROUP BY to_char(starttime,'yyyy-MM-dd') ) as b on a.time=b.starttime order by a.time
結(jié)果如下:
到此這篇關(guān)于postgresql查詢每個月的最后一天日期并對未查到的日期結(jié)果補0(操作示例)的文章就介紹到這了,更多相關(guān)postgresql查詢每個月的最后一天日期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL查詢和處理JSON數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于PostgreSQL查詢和處理JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-11-11本地計算機上的 postgresql 服務(wù)啟動后停止的問題解決
這篇文章主要介紹了本地計算機上的 postgresql 服務(wù)啟動后停止的問題解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL教程(五):函數(shù)和操作符詳解(1)
這篇文章主要介紹了PostgreSQL教程(五):函數(shù)和操作符詳解(1),本文講解了邏輯操作符、比較操作符、數(shù)學(xué)函數(shù)和操作符、三角函數(shù)列表、字符串函數(shù)和操作符等內(nèi)容,需要的朋友可以參考下2015-05-05PostgreSQL有效地處理數(shù)據(jù)序列化和反序列化的方法
在 PostgreSQL 中,處理數(shù)據(jù)的序列化和反序列化是確保數(shù)據(jù)在存儲、傳輸和處理過程中的一致性和可用性的重要任務(wù),這涉及到選擇合適的數(shù)據(jù)類型、轉(zhuǎn)換函數(shù)以及在應(yīng)用程序與數(shù)據(jù)庫之間進行數(shù)據(jù)交互的策略,需要的朋友可以參考下2024-07-07解決postgreSql遠程連接數(shù)據(jù)庫超時的問題
這篇文章主要介紹了解決postgreSql遠程連接數(shù)據(jù)庫超時的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12