postgresql查詢每個(gè)月的最后一天日期并對(duì)未查到的日期結(jié)果補(bǔ)0(操作示例)
postgresql查詢每個(gè)月的最后一天日期,并對(duì)未查到的日期結(jié)果補(bǔ)0
說(shuō)明
遇到了一個(gè)需求,需要查詢每個(gè)月月底的最后一天數(shù)據(jù),并對(duì)未查到的日期結(jié)果補(bǔ)0。
pgsql需要使用函數(shù)如下
使用date_trunc()函數(shù)找到指定月第一天
然后對(duì)該日期先加一個(gè)月在減一個(gè)月就能得到你傳給的日期的最后一天日期
然后在使用generate_series()函數(shù):你發(fā)現(xiàn)這樣寫(xiě)不能得到自己的期望結(jié)果,有些日期不準(zhǔn)確。
最后generate_series()函數(shù)結(jié)合date_trunc()函數(shù)就能達(dá)到期望結(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ù)對(duì)值為空進(jìn)行補(bǔ)0操作,就能查詢出你期望的結(jié)果。
實(shí)現(xiàn)
在實(shí)際開(kāi)發(fā)中只需要將2個(gè)日期2021-06-30和2022-05-31換成對(duì)應(yīng)的開(kāi)始日期參數(shù)和結(jié)束日期參數(shù),那么這個(gè)統(tǒng)計(jì)結(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查詢每個(gè)月的最后一天日期并對(duì)未查到的日期結(jié)果補(bǔ)0(操作示例)的文章就介紹到這了,更多相關(guān)postgresql查詢每個(gè)月的最后一天日期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pgsql添加自增序列、設(shè)置表某個(gè)字段自增操作
這篇文章主要介紹了pgsql添加自增序列、設(shè)置表某個(gè)字段自增操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12基于postgresql查詢某個(gè)字段屬于哪個(gè)表的說(shuō)明
這篇文章主要介紹了基于postgresql查詢某個(gè)字段屬于哪個(gè)表的說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL查詢和處理JSON數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于PostgreSQL查詢和處理JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-11-11本地計(jì)算機(jī)上的 postgresql 服務(wù)啟動(dòng)后停止的問(wèn)題解決
這篇文章主要介紹了本地計(jì)算機(jī)上的 postgresql 服務(wù)啟動(dòng)后停止的問(wèn)題解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧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ù)在存儲(chǔ)、傳輸和處理過(guò)程中的一致性和可用性的重要任務(wù),這涉及到選擇合適的數(shù)據(jù)類型、轉(zhuǎn)換函數(shù)以及在應(yīng)用程序與數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)交互的策略,需要的朋友可以參考下2024-07-07解決postgreSql遠(yuǎn)程連接數(shù)據(jù)庫(kù)超時(shí)的問(wèn)題
這篇文章主要介紹了解決postgreSql遠(yuǎn)程連接數(shù)據(jù)庫(kù)超時(shí)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12