Situatie
Ne lovim deseori de situatia de a avea un raport cu data de nastere a clientilor dar sa nu avem o coloana cu aceasta data, ci doar o coloana cu cnp. Ca atare suntem nevoiti sa extragem data de nastere din cnp.
Pt a usura rezolvarea problemei am scris o functie care face acest lucru.
Solutie
CREATE FUNCTION [dbo].[BDGetDataNasteriiFromCNP]
(
@CNP nvarchar(255)
)
RETURNS datetime
AS
BEGIN
DECLARE @returnVal datetime
DECLARE @Sex int
DECLARE @An varchar(10)
DECLARE @Luna varchar(10)
DECLARE @Zi varchar(10)
select @Sex = substring(@CNP, 1, 1),
@An = substring(@CNP, 2, 2),
@Luna = substring(@CNP, 4, 2),
@Zi = substring(@CNP, 6, 2)
if @Sex in (1,2,7)
begin
set @An = ’19’+ @An
end
else
begin
set @An = ’20’+@An
end
select @returnVal = convert(datetime, @An+@Luna+@Zi, 112)
RETURN @returnVal
END
Leave A Comment?