postgresql查詢每個(gè)月的最后一天日期并對(duì)未查到的日期結(jié)果補(bǔ)0(操作示例)
postgresql查詢每個(gè)月的最后一天日期,并對(duì)未查到的日期結(jié)果補(bǔ)0
說明
遇到了一個(gè)需求,需要查詢每個(gè)月月底的最后一天數(shù)據(jù),并對(duì)未查到的日期結(jié)果補(bǔ)0。
pgsql需要使用函數(shù)如下
使用date_trunc()函數(shù)找到指定月第一天

然后對(duì)該日期先加一個(gè)月在減一個(gè)月就能得到你傳給的日期的最后一天日期

然后在使用generate_series()函數(shù):你發(fā)現(xiàn)這樣寫不能得到自己的期望結(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í)際開發(fā)中只需要將2個(gè)日期2021-06-30和2022-05-31換成對(duì)應(yīng)的開始日期參數(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)文章
解決postgresql 數(shù)據(jù)庫 update更新慢的原因
這篇文章主要介紹了解決postgresql 數(shù)據(jù)庫 update更新慢的原因,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Postgresql的select優(yōu)化操作(快了200倍)
這篇文章主要介紹了Postgresql的select優(yōu)化操作(快了200倍),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01
基于postgresql數(shù)據(jù)庫鎖表問題的解決
這篇文章主要介紹了基于postgresql數(shù)據(jù)庫鎖表問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12
postgresql連續(xù)歸檔及時(shí)間點(diǎn)恢復(fù)的操作
這篇文章主要介紹了postgresql連續(xù)歸檔及時(shí)間點(diǎn)恢復(fù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL 數(shù)據(jù)庫跨版本升級(jí)常用方案解析
這篇文章主要介紹了PostgreSQL 數(shù)據(jù)庫跨版本升級(jí)常用方案解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法
這篇文章主要介紹了使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08

