Postgresql列出当月(或某几月)所有日期

本文介绍了一种使用SQL查询生成指定月份内每一天日期的方法,通过generate_series函数结合to_char和cast函数,可以轻松创建一个包含某个月份所有日期的临时表,便于与其他数据表进行JOIN操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候,我们需要构造一个自然天的列作为temp表来join其他表数据,列出当月(或某几月)所有日期:

select to_char(tt.day, 'yyyy-mm-dd') as day

from (select generate_series(cast(to_char(current_date, 'yyyy-mm') || '-01' as date),

cast(cast(to_char(current_date, 'yyyy-mm') || '-01' as timestamp) + '1 MONTH' + '-1 d' as

date), '1 d') as day) as tt

order by day;


select to_char(tt.day, 'yyyy-mm-dd') as orderDate
from (select generate_series(cast(to_char(to_date('2018-07-11', 'YYYY-MM'), 'yyyy-mm') || '-01' as date),
                             cast(
                               cast(to_char(to_date('2018-08-12', 'YYYY-MM'), 'yyyy-mm') || '-01' as timestamp) + '-1 d'
                               as date), '1 d') as day) as tt
order by orderDate;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值