powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Vozrast v vichislyaemom pole...
4 сообщений из 4, страница 1 из 1
Vozrast v vichislyaemom pole...
    #32049189
Guest_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mozhet kto podskazhet kak na osnove dati rozhdeniya v vichislyaemom pole poprosche vischitat` vozrast cheloveka - tol`ko godi. Zaranee spasibo.
...
Рейтинг: 0 / 0
Vozrast v vichislyaemom pole...
    #32049196
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare @birthday datetime, @d datetime
select @birthday = '12/31/1998', @d = '1/1/99'
select datediff(yy, @birthday, @d) -
	(case when (datepart(m, @birthday) > datepart(m, @d)) or
			(datepart(m, @birthday) = datepart(m, @d) And
				datepart(d, @birthday) > datepart(d, @d))
			then  1 
			else  0 
	end) as Age1
 -- Just for completion, another way to do the same
 
select year ( dateadd( dd, datediff ( dd , @birthday , @d ) ,
		'1900-01-01 00:00' ) )	-  1900 
 -- To find out if a year is leap year or not, use
 
if ( year ( @d ) %  400  =  0  ) Or
	( year( @d ) %  4  =  0  And year ( @d ) %  100  <>  0  )
	print 'Leap Year - 366 days'
else
	print 'Not a leap year - 365.25 days'
...
Рейтинг: 0 / 0
Vozrast v vichislyaemom pole...
    #32049203
Фотография MichaelGK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так будет ли достаточно точно?
Код: plaintext
1.
SELECT CAST((DATEDIFF(DD,BornDate,GetDate())/ 365 . 25 )AS INT)
...
Рейтинг: 0 / 0
Vozrast v vichislyaemom pole...
    #32049206
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное всё-таки недостаточно
но так длинно как у Александра тоже необязательно
Код: plaintext
1.
2.
3.
4.
5.
6.
declare @b datetime
select @b='19651031'

select datediff(yy, @b, getdate()) - 
      case when month(@b)* 31 +day(@b)>month(getdate())* 31 +day(getdate()) 
      then  1  else  0  end
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Vozrast v vichislyaemom pole...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]