PDA

View Full Version : تبدیل نوع تاریخ به نوع عددی در sql



hosseinonline
دوشنبه 08 دی 1393, 11:06 صبح
محاسبه سن از روی تاریخ میلادی

سلام دوستان
ی جدولی دارم که تاریخ تولد کارمندان از نوع date میلادی وجود داره توش
حالا میخوام ی تابع بنویسم که محدوده سن رو به صورت دو تا عدد بگیره (به عنوان آرگومان های ورودی تابع )
و اسم کارمندان که سنشون بین این دو عدد هست رو تو جدول نمایش بده
لطفا راهنمایی کنید

AMIN_SG
دوشنبه 08 دی 1393, 12:16 عصر
شما ابتدا باید اون رشته هایی که میگیری رو Cast بکنی به تاریخ که با کد زیر میتونی این کار رو انجام بدی
DateTime df = Convert.ToDateTime(StringFrom );
DateTime dt = Convert.ToDateTime(StringTo);
چون میخوای بین دو زمان بگردی دو تا متغییر نیاز داری

بعد باید یه تابع بنویسی مثل تابع زیر که اون دو تا متغییر رو باید به این تابع پاس بدی به اضافه ی اون تاریخی که میخوای چک بکنی
private void Search(DateTime dt, DateTime df,DateTime YouritemDate)
{
//هم همون تاریخ هایی هست که تو دیتابیست هستش YourItemDate
if (YouritemDate <= dt && YouritemDate >= df)
{
//کد مورد نظر شما بعد از پیدا شدن
}
}
موفق باشی

ASKaffash
دوشنبه 08 دی 1393, 13:23 عصر
سلام
شبیه این کد :
Declare @From int=0,@To int=1
Declare @DT DateTime=GetDate()
Select *
From MyTable
Where DateDiff(Day,MyField,@DT)/365.25 Between @From and @To

hosseinonline
دوشنبه 08 دی 1393, 14:05 عصر
alter FUNCTION Age_Function
(
@a int ,@b int
)
RETURNS
TABLE

AS
-- Fill the table variable with the rows for your result set

RETURN ( select id, datediff(DAY,year(persenel.BornDate),year( GETDATE() )) as 'Age' from persenel
where datediff(DAY,year(persenel.BornDate),year( GETDATE() )) between @a and @b
)
--------------------------اینم روش استفاده از تابع
select * from dbo.Age_Function(13,25)