Sql 本月上周五

Sql 本月上周五,sql,database,oracle,date,select,Sql,Database,Oracle,Date,Select,我正在尝试写一个查询,返回上个月的最后一个星期五,这就是我到目前为止得到的结果 SELECT sysdate FROM DUAL where (LAST_DAY( SYSDATE ) - INTERVAL '7' DAY, 'Friday' ); 考虑: select next_day(trunc(sysdate, 'month') - interval '8' day, 'Friday') from dual 理由: trunc(sysdate,'month')提供

我正在尝试写一个查询,返回上个月的最后一个星期五,这就是我到目前为止得到的结果

SELECT sysdate
FROM   DUAL
where (LAST_DAY( SYSDATE ) - INTERVAL '7' DAY,
         'Friday' );
考虑:

select next_day(trunc(sysdate, 'month') - interval '8' day, 'Friday') from dual
理由:

  • trunc(sysdate,'month')
    提供当前月份的第一天

  • 我们将该值抵消8天,因此我们可以在上个月底前7天计算该日期

  • 然后,
    next_day()
    返回该日期后的下一个星期五,即该月的最后一个星期五

试试这个:


从DUAL中选择下一天(最后一天(截止日期('01-')至|至|字符(系统日期,'MON-YYYY'))-1)-间隔时间'7'天,'FRIDAY')

我正要发布同样的东西。@GordonLinoff:对我来说,这意味着我找到了最好的解决方案(或者非常接近)!
next_day
的参数是否始终使用英语?参数char中的@wolφi必须是您的日期语言中的一周中的一天session@micklesh刚刚检查了整页,但跳过了这句话,叹气。谢谢如果您试图返回某个内容,它不应该出现在查询的
where
子句中(除了用于此操作的正确函数和正确计算之外)。将其放在
where
子句中表明您在SQL查询的最基本元素方面有困难;现在试着把更多的注意力放在这些方面,然后再转移到更高级的话题上。