UFN_CURRENCY_GETEXPIRATIONDATE
Returns the expiration date for an exchange rate.
Return
Return Type |
---|
datetimeoffset |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TYPECODE | tinyint | IN | |
@ASOFDATE | datetime | IN | |
@TIMEZONEENTRYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_CURRENCY_GETEXPIRATIONDATE(
@TYPECODE tinyint,
@ASOFDATE datetime,
@TIMEZONEENTRYID uniqueidentifier
)
returns datetimeoffset
with execute as caller
as
begin
declare @EXPIRATIONCODE tinyint;
declare @EXPIRATIONDATE datetime;
select top 1 @EXPIRATIONCODE = case @TYPECODE
when 0 then CORPORATEEXCHANGERATEEXPIRATIONCODE
when 1 then DAILYEXCHANGERATEEXPIRATIONCODE
end
from dbo.MULTICURRENCYCONFIGURATION;
if @EXPIRATIONCODE = 1
set @EXPIRATIONDATE = @ASOFDATE;
else if @EXPIRATIONCODE in(2,3,4)
set @EXPIRATIONDATE = dateadd(day,@EXPIRATIONCODE-1,@ASOFDATE);
else if @EXPIRATIONCODE = 5
set @EXPIRATIONDATE = dateadd(week,1,@ASOFDATE);
else if @EXPIRATIONCODE = 6
set @EXPIRATIONDATE = dateadd(month,1,@ASOFDATE);
else if @EXPIRATIONCODE = 7
set @EXPIRATIONDATE = dateadd(quarter,1,@ASOFDATE);
else if @EXPIRATIONCODE = 8
set @EXPIRATIONDATE = dateadd(year,1,@ASOFDATE);
set @EXPIRATIONDATE = dbo.UFN_DATE_GETLATESTTIME(@EXPIRATIONDATE)
declare @UTCOFFSET integer = dbo.UFN_TIMEZONEENTRY_GETTIMEZONEOFFSETFROMUTC(@TIMEZONEENTRYID, @EXPIRATIONDATE, 0);
return TODATETIMEOFFSET(@EXPIRATIONDATE,@UTCOFFSET)
end