SQL Sever COUPDAYS function

COUPDAYS

Updated: 5 August 2010

Use COUPDAYS to calculate the number of days in the coupon period that contains the settlement date.

Syntax
SELECT [westclintech].[wct].[COUPDAYS] (
<@Settlement, datetime,>
,<@Maturity, datetime,>
,<@Frequency, float,>
,<@Basis, nvarchar(4000),>)
Arguments
@Settlement
the settlement date occurring within the coupon period of the security. @Settlement is an expression that returns a datetime or smalldatetime value, or a character string in date format.
@Maturity
the maturity date of the bond. @Maturity is an expression that returns a datetime or smalldatetime value, or a character string in date format.
@Frequency
the number of coupon payments per year. For annual payments, @Frequency = 1; for semi-annual, @Frequency = 2; for quarterly, @Frequency = 4; for monthly, @Frequency = 12. @Frequency is an expression of type float or of a type that can be implicitly converted to float.
@Basis
is the type of day count to use. @Basis is an expression of the character string data type category.
 Basis Day count basis 0 or omitted US (NASD) 30/360 1 Actual/Actual 2 Actual/360 3 Actual/365 4 European 30/360

Return Type
Int
Remarks
Â·         A settlement date occurs in the coupon period where the settlement date is greater than or equal to start date of the coupon period and less than the end date of the coupon period (as the end date of one period is the start date of the next period)
Â·         If the @Frequency is any number other than 1, 2, 4, or 12, COUPDAYS returns an error
Â·         If @Basis < 0 or @Basis > 4, COUPDAYS returns an error
Â·         If @Settlement > @Maturity, COUPDAYS returns an error

Example
SELECT wct.COUPDAYS('12/16/2007'
,'3/1/2027'
,2
,1)
Here is the result set.
----------------------

182