PDA

View Full Version : سوال: مشکل در درج تاریخ فارسی در sql server 2005



zimzim
یک شنبه 03 مرداد 1389, 12:13 عصر
با سلام
من هروقت تاریخ فارسی را در یک فیلد از جدول sql server 2005 که از نوع date time می باشد را وارد می کنم به یک شکل تاریخ میلادی ذخیره می شود . نمی دانم برای ذخیره تاریخ به صورت فارسی باید چه کار کنم ؟

لطفا مرا راهنمایی کنید .
با تشکر

goolestan
یک شنبه 03 مرداد 1389, 12:20 عصر
یا باید نوع فیلدتوعوض کنی به CHARیا مشابه آن یاهم میلادی ذخیره کن و با تابع بصورت شمسی بخوان راه دیگری نداری
تابع مورد نیازت را از پیغام های خودم میتونی تواین سایت گیربیاری

mohsen.nsb44
یک شنبه 03 مرداد 1389, 12:26 عصر
با سلام
من هروقت تاریخ فارسی را در یک فیلد از جدول sql server 2005 که از نوع date time می باشد را وارد می کنم به یک شکل تاریخ میلادی ذخیره می شود . نمی دانم برای ذخیره تاریخ به صورت فارسی باید چه کار کنم ؟

لطفا مرا راهنمایی کنید .
با تشکر
همون طور که دوستمون گفتند با تغییر فیلدت از date time به char مشکلت حل میشه دوست عزیز

zimzim
یک شنبه 03 مرداد 1389, 13:27 عصر
با تشکر از دوستان
ولی من می خوام از نوع date time استفاده کنم ؟ لطفا دوستان اگر راه حل دیگه ای دارند مطرح بفرمایند .

alihassanabadi
یک شنبه 03 مرداد 1389, 15:28 عصر
سلام
دوست عزيز چون فيلدي كه از نوع datetime هست تاريخ فارسي رو نميگيره به صورت اتوماتيك به ميلادي تبديل ميشه
من همين الان تو sqlserver 2000 امتحان كردم
به عنوان مثال اين تاريخ رو قبول نميكنه
1/1/1750
و ارور زير رو ميده
datetime Field overflow
ولي تاريخ هاي بيشتر از اينو قبول ميكنه
مثل
1/1/1753
پس نتيجه ميگيريم كه شما تاريخ رو به صورت ميلادي ذخيره كن و هر وقت اين فيلد رو خوندي به شمسي تبديلش كن
كه جناب sinpin زحمت تابعش رو كشيده بود



using System.Globalization;

public string Miladi2Shamsi(DateTime _date)
{
PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
sb.Append(pc.GetYear(_date).ToString("0000"));
sb.Append("/");
sb.Append(pc.GetMonth(_date).ToString("00"));
sb.Append("/");
sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
return sb.ToString();
}

نحوه استفاده


string today = Miladi2Shamsi(DateTime.Now);