SELECT case when TRIM(TO_CHAR(TO_DATE(FACTORYDATE,‘YYYYMMDD’),‘DAY’)) =‘TUESDAY’ or TRIM(TO_CHAR(TO_DATE(FACTORYDATE,‘YYYYMMDD’),‘DAY’)) =‘星期二’ then TO_DATE(FACTORYDATE,‘YYYYMMDD’)
else trunc(TO_DATE(FACTORYDATE,‘YYYYMMDD’),‘iw’)-6
end FACTORYDATE FROM (
SELECT CASE WHEN SUBSTR(to_char(sysdate,‘YYYYMMDDHH24MISS’),9,14)>=‘060000’ THEN TO_CHAR(TO_DATE(SUBSTR(to_char(sysdate,‘YYYYMMDDHH24MISS’),0,8),‘YYYYMMDD’),‘YYYYMMDD’)
WHEN SUBSTR(to_char(sysdate,‘YYYYMMDDHH24MISS’),9,14)<‘060000’ THEN TO_CHAR(TO_DATE(SUBSTR(to_char(sysdate,‘YYYYMMDDHH24MISS’),0,8),‘YYYYMMDD’)-1,‘YYYYMMDD’)
END FACTORYDATE FROM dual
)
【SQL】根据某一日期获得特定上一周X的日期
最新推荐文章于 2025-10-26 15:52:57 发布
该SQL查询主要用于根据当前时间判断工厂日期是否为周二,或者返回最近的周一日期。查询首先根据当前时间判断是早上6点之后还是之前,然后转换并处理工厂日期,如果日期为周二或中文的'星期二',则返回该日期,否则返回该周的周一日期。
3648

被折叠的 条评论
为什么被折叠?



