Я работаю с проектом в SSRSРасчет возраста из ССН
В базе данных у меня есть столбец с именем X, и в этой колонке, у меня есть номера социального обеспечения для всех работников и все номера выглядят, как это с любой из (- или /) примера 1111111111 (DDMMYYXXXX).
Вопрос в том, как я могу написать sql, чтобы выбрать только 6 первых чисел, а затем минус текущее время и в конце дать мне возраст сотрудников. Может кто-то, пожалуйста, назовите меня в правильном направлении. Спасибо.
До сих пор SQL я написал выглядеть следующим образом:
create function dbo.birthdate_from_cpr(@cpr varchar(10))
returns date
as
begin
declare @year char(2) = substring(@cpr, 5, 2),
@month char(2) = substring(@cpr, 3, 2),
@day char(2) = substring(@cpr, 1, 2),
@century char(2)
if right(datepart(yy, getdate()), 2) < @year
set @century = left(datepart(yy, getdate()) - 100, 2)
else
set @century = left(datepart(yy, getdate()), 2)
return convert(date, @century + @year + @month + @day, 120)
end
go
select dbo.birthdate_from_cpr('1312761234'),
dbo.birthdate_from_cpr('0101041234'),
age = datediff(yy, dbo.birthdate_from_cpr('1312761234'), getdate())
DATEDIFF (YEAR, CAST (LEFT (ColName, 6) AS DATE), GETDATE())) – Snowlockk
LEFT (Users.SSN, 6), что делает это выглядит? – Snowlockk
Можете ли вы поделиться своими данными таблицы таблиц и ожидаемым выходом. –