Fixed Price Projects          Flexibele IT oplossingen

Software op maat              Web Applications

De geboortedatum is niet altijd ingevuld, maar je hebt toegang tot het rijksregisternummer, dan helpt deze functie je redelijk full-proof aan de juiste gegevens

/*
Name:       construct_geboortedaum
Author:     Olivier Jooris
Date:       23/6/2015
Desc:       zoek geboortedatum adhv rijksregisternr
Parm: @RRNR: rijksregisternr yymmdd-xxx-xx 
          @AlternatiefGebDatum: als niet mogelijk om geboortedatum te halen uit rrnr, probeer dit alternatief
          @RefDate= als datum groter is dan deze datum, trek dan 100 jaar af van het resultaat om te vermijden geboortedata in de toekomst te hebben
*/
create function [dbo].[construct_geboortedatum](@RRNR nvarchar(20), @AlternatiefGebDatum date , @RefDate date) returns date
as
begin
declare @res  date = '1/1/1753'
declare @sGebDat as nvarchar(20)

--haal de geboortedatum uit het rrnr
set @sGebDat = SUBSTRING (@RRNR,3,2)+ '-' + SUBSTRING (@RRNR,5,2) + '-' + SUBSTRING (@RRNR,1,2)
if ISDATE(@sGebDat) = 1
begin
set @res = convert(date,@sGebDat , 1)
end

-- als geboorte datum niet gevonden, gebruik dat het alternatief als het ingevuld is
if @res = '1/1/1753' and @AlternatiefGebDatum is not null
set @res = @AlternatiefGebDatum

-- een rrnr 890917-206-52 zou 17/9/2089 tot gevolg hebben, dus 100 jaar aftrekken om 1989 te hebben
if @RefDate = null
set @RefDate = GETDATE()
if @res > @RefDate and @res <> '1/1/1753'
set @res = DATEADD(year,-100,@res)

-- return the result
return @res
end 
Categorie: Algemeen
Actions: E-mail | Permalink |

waardering