PDA

View Full Version : حرفه ای: اختلاف زمانی بین دو تاریخ در دو رکورد



EBRAHIMIEKOKDARAGHI
یک شنبه 27 اردیبهشت 1394, 10:37 صبح
با سلام خدمت اساتید بزرگوار و دوستان برنامه نویس
من میخواستم بدونم چطور میشه اختلاف زمانی بین دو تاریخ رو که در دو رکورد متفاوت ذخیره شده اند را چگونه در linq محاسبه کنم من قبلا" این مسئله رو با کمک دوستان در sql به روش زیر حل کرده بودم

ALTER PROCEDURE [dbo].[mtbf]
-- Add the parameters for the stored procedure here
@date1 nvarchar(10),@date2 nvarchar(10)
AS
BEGIN
With tbl as (
Select
*,
Row_Number() Over(Order By ID) as RowNum
From
View_amar

)
Select
T2.id,T2.[car kod],t2.[car name],t2.ghsmat,t2.[mahl as],
DateDiff(MINUTE, T1.datekhrabiM, T2.datekhrabiM) as mtbf
From
tbl T1 INNER JOIN tbl T2
ON
T2.RowNum = T1.RowNum + 1 and T1.[car kod]=T2.[car kod] and T1.datakhrabi between @date1 and @date2
END

sohil_ww
یک شنبه 27 اردیبهشت 1394, 11:38 صبح
دوست عزیز یا لینک کارت خیلی راحت تر میشه اگه نوع تاریخ استفاده می کنی که خوب می تونی خیلی راحت از هم کمشون کنی
البته کوئری که من می بینم شما امدی اطلاعات بین دو تاریختو تو نتیجه سلکت استفاده کردی و هیچ تفریقی استفاده نکردی !

EBRAHIMIEKOKDARAGHI
یک شنبه 27 اردیبهشت 1394, 12:20 عصر
باتشکر از جواب شما sohil_ww (http://barnamenevis.org/member.php?274781-sohil_ww)
دوست عزیز اگر این اختلاف بین دو فیلد تاریخ در یک رکورد بود حرف شما درست بود ولی باید بگم که این اختلاف رو در رکورد ها متفاوت و ثورت شده برحسب id باید محاسبه کنه و مهم که داخل کوئری باشه

EBRAHIMIEKOKDARAGHI
چهارشنبه 30 اردیبهشت 1394, 13:00 عصر
خودم حلش کردم برای استفاده دوستان میزارمش

int i=1,i2=1;
var data1=from item1 in (from e in View_amar orderby e.Id select e).ToList()
let row=i++
select new{
Code=item1.Carkod,
Name=item1.Carname,
Id=item1.Id,
Row=row,
Date1=item1.DatakhrabiM

};
var data2=from item1 in (from e in View_amar orderby e.Id select e).ToList()

let row=i2++
select new{
Code=item1.Carkod,
Name=item1.Carname,
Id=item1.Id,
Row=row,
Date1=item1.DatakhrabiM
};
var data3=from item1 in data1
join
item2 in data2
on item1.Row equals item2.Row+1
where item1.Code == item2.Code

select new {
Code=item1.Code,
Name=item1.Name,
Id=item1.Id,
Mtbf=item1.Date1-item2.Date1
};
data3.Dump();