1

以下查询的结果是给我一个月的最后一个工作日。

select  DATE_FORMAT(max(dates), '%m-%d-%Y')  Last_day
from
(select dates,@r := @r + 1 as r
FROM
(SELECT @r := 0) r1,
(SELECT @row := @row + 1 as row, DATE_ADD('2013-03-01', INTERVAL @row-1 DAY) dates
From
(SELECT @row := 0) r,
(select 1 n union all select 2 n union all select 3 n union all select 4 n union all     select 5 n union all select 6 n) t1,
(select 1 n union all select 2 n union all select 3 n union all select 4 n union all select 5 n union all select 6 n) t2
) num_seq 
where 
dates<DATE_ADD('2013-03-01', INTERVAL 1 MONTH)
and DAYNAME(dates) not in ('Saturday','Sunday') 
order by dates )rTable;

以下查询的结果是给我特定日期四分之一的最后一天。

select MAKEDATE(YEAR('2013-03-01'), 1)+ INTERVAL QUARTER('2013-03-01') QUARTER - INTERVAL 1 DAY a;

我遇到的问题是从上一季度、现在和下一季度获得最后一个工作日。有没有一种方法可以将上述两个 sql 合二为一。

请帮我解决这个问题。

4

1 回答 1

1

如果您只想要上一季度、本季度和下一季度的最后一个工作日,那么在应用程序代码中计算这些日期然后将它们传递到数据库可能会容易得多。

于 2013-01-30T08:15:45.190 回答