我试图写一个查询,将返回上个月的最后一个星期五这是我迄今为止。
SELECT sysdate FROM DUAL where (LAST_DAY( SYSDATE ) - INTERVAL '7' DAY, 'Friday' );
sqxo8psd1#
考虑:
select next_day(trunc(sysdate, 'month') - interval '8' day, 'Friday') from dual
理论基础: trunc(sysdate, 'month') 给你当月的第一天我们用8天的时间来抵消这个值,这样我们就可以在上个月底前7天计算出这个日期那么, next_day() 返回此日期后的下一个星期五,即本月的最后一个星期五
trunc(sysdate, 'month')
next_day()
fdbelqdn2#
试试这个:从dual中选择next_day(last_day(to_date('01-'| | to_char(sysdate,'mon yyyy'))-1)-interval'7'day,'friday';
2条答案
按热度按时间sqxo8psd1#
考虑:
理论基础:
trunc(sysdate, 'month')
给你当月的第一天我们用8天的时间来抵消这个值,这样我们就可以在上个月底前7天计算出这个日期
那么,
next_day()
返回此日期后的下一个星期五,即本月的最后一个星期五fdbelqdn2#
试试这个:
从dual中选择next_day(last_day(to_date('01-'| | to_char(sysdate,'mon yyyy'))-1)-interval'7'day,'friday';