On 16-3-2012 17:13, Kevin Stanton wrote: > Greetings, > > I believe I'm down to just 3 UDFs and was wondering if there are any > replacements for: > > F_ADDMONTH > F_ADDYEAR > F_AGEINMONTHS > > > Also, is there a place where I can get a list of all functions for FB > 1.56 (and beyond)? I've taken a quick look but it's not jumping out at me. > >Upgrading to Firebird 2.1 or higher would give you DATEADD and DATEDIFF (see >>http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-intfunc.html >) > >For F_ADDMONTH and F_ADDYEAR you could use the Firebird provided udfs addMonth >and addYear (see >>http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-udf.html)
And it ought to be reasonably simple to calculate AgeInMonths on the fly: (extract(year from current_date)-extract(year from MyBirthDate))*12+ extract(month from current_date)-extract(month from MyBirthDate)- case when extract(day from current_date) < extract(day from MyBirthDate) then 1 else 0 end A couple of things to note: - I do not have Fb 1.5 available now, and am uncertain whether current_date is supported - I've never used F_AGEINMONTHS, but assume it truncates rather than rounds, e.g. that 29 February 2012 - 30 January 2011 should return 12 and not 13 since it hasn't reached 30 February yet (i.e. 1 March). HTH, Set
