繁体   English   中英

Select 上周或周末从 postgresql 的 current_date 开始

[英]Select last Week or Weekend from the current_date on postgresql

我对 PostgreSQL 有一点问题,我可以用 CASE WHEN 做所有事情,但我希望有另一种方法可以做到这一点。

简而言之,如果 NOW() 是工作日(to_char(now(),'D') 介于 2 和 6 之间)或上周末(在其他案子)。

例如,现在 (21/01/2021 dd/mm/aaaa) 我需要我的查询给我 11/01/2021 00:00:00 - 15/01/2021 23:59:59。 例如,对于下一个明天 (23/01/2021),我需要我的查询给我 16/01/2021 00:00:00 -17/01/2021 23:59:59。

有人知道我是否可以用 SQL 做点什么吗?

谢谢,

问候

编辑:我只需要一个查询,其中我 select 是 current_date 并返回以下日期范围。

Select 
case when to_char(now(),'D') in (2,3,4,5,6) then --last working day week
else ----last weekend days
end

对于最后一个工作日,我的意思是从星期一的午夜到上周星期五的 23:59:59 的范围(对于今天,21/01/2021,我需要 11/01/2021 00:00:00 - 2021 年 1 月 1 日 23:59:59),对于最后一个周末,我指的是从周六午夜到周日 23:59:59 的范围

我解决了!

select current_date - extract(isodow from current_date)::integer-6 as monday,
   current_date - extract(isodow from current_date)::integer-2 as friday,
   current_date - extract(isodow from current_date)::integer-1 as saturday,
   current_date - extract(isodow from current_date)::integer as sunday

它适用于所有日期。 我只需要使用案例来选择不同的 2 select 语句。

谢谢你们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM