PDA

View Full Version : نوع داده Time Span



Elmira1987
دوشنبه 14 تیر 1389, 15:24 عصر
با سلام دوستان
كار من افتاده اندر مشكلي......

من يكي از داده اي برنامه ام رو از نوع time span تعريف كردم كه همون داده ام يكي از فيلد هاي يكي از جدو ل هاي من در ديتا بيس هست كه نوع ان داده رو در ديتابيس كه sql 2005 هست گذاشتم date time . مثلا اسم فيلده من هست StartTime توي برنامه
ميام و تعريف مي كنم

time span startTime=new TimeSpan ]
يعني داده ام رو از نوع time span تعريف مي كنم
و بعد در جايي ديگه

startTime(hours,minuste,0)
يعني ساعت و دقيقه رو جدا مي كنم ............

خوب حالا مي خوام همين مقدار رو توي جدولم و توي همون فيليدي كه از نوع date time هست ذخيره كنم ولي نمي ذاره من همچين كاري كنم ...
سوال:::
من چطور مي تونم يه نوع داده رو كه از نوع timespan هست رو با date time ذخيره كنم ...


سوالات احنمالي:
1- بله ديتا بيسم از اس كيوال 2005 ساخته شده
2-نمي تونم ديتابيس رو دوباره بسازم چون پروژه ام خيلي بزرگه
3-قبلا ديتابيسم 2008 بوده ولي به خاطر اينكه توي ستاپ ساختن اذيت شدم ناچار به تغيير اون به 2005 شدم ....

RIG000
دوشنبه 14 تیر 1389, 15:54 عصر
Error ای که میده چیه؟

gwbasic
سه شنبه 15 تیر 1389, 08:30 صبح
از TimeSpan برای ذخیره فاصله زمانی استفاده می شود ، چرا شما برای StartTime از TimeSpan استفاده کرده اید؟؟!؟!؟!

و اما برای ذخیره TimeSpan در DB راههای زیادی وجود دارد از جمله تبدیل اون به string و ... :


TimeSpan t = new TimeSpan(1,2,3);
string s = t.ToString();
// Save s to DataBase


// Retrieve s from DataBase & Parse to TimeSpan
t = TimeSpan.Parse(s);


واما در نهایت یک روش کثیف برای ذخیره به صورت DateTime در DB که پیشنهاد می کنم از اون استفاده نکنید؟!؟!؟!؟!؟!



DateTime Origin = new DateTime(2010, 1, 1);
DateTime Temp;
Temp = Origin + t;
// Save Temp To DataBase As a DateTime

...
// Retrieve Temp From DataBase & Compute TimeSpan By Origin
t = Temp - Origin;