PDA

View Full Version : سوال: فرمت بندي كردن تاريخ عددي



msdsbi
جمعه 07 آبان 1389, 01:29 صبح
سلام دوستان عزيز
من مشكلي دارم كه اونم اينه كه من تاريخ رو به صورت عددي در ديتابيسم ذخيره مي كنم
مثلاً 07/08/1389 رو بصورت 13890807 در ديتابيسم ذخيره مي كنم كه فكر مي كنم كه منطقي هم است براي جستجو در بين ركوردها توسط تاريخ

حالا مشكل من اينه كه مي خوام اطلاعاتم روي ديتاگريد نمايش بدم كه مشكلي كه برخوردم اين بود كه تاريخ عددي ام رو نتونستم تغييرش بدم يا در واقع بهش فرمت بدم توي سايت w3shcools ديدم كه قسمتي داره به نام فرمت كه متنش رو مي نويسم كه متاسفانه فقط ديدم توي اكسس كار مي كنه ولي ديتابيس من اس كيو ال 2008 هستش كه اين عمل بر روي اون اجرا نشد.
كد دستوري كه در w3shcool بود اينه

SELECT FORMAT(column_name,format) FROM table_name(
من اين دستور رو توي اكسس اجرا كردم جواب داد ولي توي اس كيو ال زدم اجرا نشد و ارور داد اگه دوستان راه حلي دارن خواهشاً بگن كه گير كردم توي اين موضوع

:عصبانی++::گریه:

msdsbi
جمعه 07 آبان 1389, 03:46 صبح
دوستان خودم گشتم و اين دستور رو پيدا كردم البته با راست و چپ كردن عدد تاريخم مشكلم حل شد ولي اگه كسي روش ديگه اي داره بگه كه استفاده كنيم كه اگه نه كه اين كد رو ميذارم تا افراد ديگه اگه مشكلي براشون پيش اومد استفاده كنند.


Select LEFT([Tarikh],4) + '/' + RIGHT(left([Tarikh],6),2) + '/' + RIGHT([Tarikh],2) as TarikhDorost

در اين كد Tarikh همان فيلدي است كه تاريخ توش بصورت عددي هستش كه با روش بالا از ديتابيس به صورت كامل مي خونه
دوستان عزيز خوشحال مي شم اگه روش ديگه اي داريد بزاريد

Salar Ashgi
جمعه 07 آبان 1389, 09:31 صبح
یه متود ساده واسه اینکار :


string Str_to_date(string str)
{
int f = 0;
string res = "";
foreach (char c in str)
{
f++;
res += c.ToString();
if (f % 2 == 0 && f != 2)
{
res += "/";
}
}
res = res.Remove(res.Length - 1);
return res;
}

نحوه استفاده :


MessageBox.Show(Str_to_date("13890807"));


موفق باشید ./