pgsql 判断当前日期是否在两个时间范围

 

需求

 

 

需求是当前时间根据活动开始时间与结束时间,得出一个状态值,同时并且支持搜索

 

 

2 解决

这里简捷的做法是 直接写sql 

这里使用 case when  进行时间判断,得出记录的状态值,这边的状态值 可以自己根据需求定义

 

 

 

 

 

 

这里的时间格式都是 date 所以用到了   

select localtimestamp;

 

 

 

 

SELECT localtimestamp as tiem ,b.cpn_end_datetime ,b.cpn_start_datetime ,
case
when cpn_start_datetime>=localtimestamp  then 1
when cpn_end_datetime <=localtimestamp  then 2
when cpn_start_datetime<=localtimestamp and cpn_end_datetime >=localtimestamp then 3
end as falsh
FROM public.bcoupon b 

 

如果这边时间格式不是date 而是别的格式,就需要进行时间转换 。

https://www.cnblogs.com/zq1003/p/16979231.html

 

 

得出状态值之后,就需要搜索。

 

 

跟查询大同小异吧。

 

也是一种思路,之前使用代码判断,发现数据量大,这个方法是十分危险的,后来改成sql。

 

posted @ 2022-12-06 11:14  未确定  阅读(1159)  评论(0编辑  收藏  举报