當需要輸入B的值時,我需要在一個月內獲得第B個工作日。 例如,如果2013年1月份的b = 12,則結果值應該採用日期格式爲'17 -01-2013',因爲結果在排除週六,週日&當月假期後計算結果爲 。使用MySql獲取特定日期
我已經用下面的代碼&試圖在它的SQLserver工作正常,但是我發現很難在MySQL中執行它的某些功能不可用 作爲sqlserver的。
Declare
@fromDate Date,
@Daydiff int
Set @fromDate ='01 jan 2013'
Set @Daydiff=datediff(day, @fromdate, dateadd(month, 1, @fromdate))
Select * from
(
Select
dateadd(day,DayNo,@fromDate) as Date,
dateName(weekday,(dateadd(day,DayNo,@fromDate))) As WeekDate,
Datename(month,(dateadd(day,DayNo,@fromDate))) as MonthName,
Row_number() Over (partition by (DatePart(month,(dateadd(day,DayNo,@fromDate))))
order by (dateadd(day,DayNo,@fromDate))) as Business_day
from
(Select top (@Daydiff) row_number() over(order by (select 1))-1 as DayNo
from sys.syscolumns a cross join sys.syscolumns b)Dates
Where
dateName(weekday,(dateadd(day,DayNo,@fromDate))) Not In ('Saturday','Sunday') and
dateadd(day,DayNo,@fromDate) Not In (Select hdate from Holidays)
)A
Where Business_day=1
注
假期是靜態的假期表,包含2013
假期表,我需要在MySQL類似的實例。 請幫助我。
對於MYSQL,您可以使用[dayname](http://www.w3resource.com/mysql/date-and-time-functions/mysql-dayname-function.php)來替換'datename'。 (日期,日期,日期,@ fromDate))) order by(dateadd(day,DayNo,@ fromDate)))as Business_day' – bonCodigo
雅。我們也處於同樣的境地。 – Bobby
對於問題+1,如果所有查詢都不在ANSI中,並且某些功能在新平臺中不可用,則遷移可能會很痛苦;;) – bonCodigo