تاریخ شمسی در SQL
      

 
Persian Forum Network - Try to be a Professional
صفحه نخست .:.  کاربران .:.   .:. تقویم  .:. کاربران آنلاین
خوش آمدید میهمان ( ورود | ثبت نام )
  /     /  



تاریخ شمسی در SQL باز / بسته
نویسنده
پیغام
ارسال شده در تاریخ پنج شنبه 13 اردیبهشت 1386 - 6:04 صبح


تازه اول راهه

تازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راهه

گروه: کاربران
آخرین بازدید: جمعه 4 خرداد 1386 - 2:34 صبح
پست ها: 9, بازدید ها: 9

من یه code نوشتم که یه Type به SQL server اضافه میکنه که میتونید تاریخ شمسی وارد کنید به جای میلادی در واقع یک User Defiend Type هستش گفتم شاید به درد کسی بخوره



PFN Code





using System;


using System.Data;


using System.Data.SqlClient;


using System.Data.SqlTypes;


using Microsoft.SqlServer.Server;


using System.Globalization;


[Serializable]


[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.Native)]


public struct JalaliDate : INullable


{


public override string ToString()


{


if (m_Null)


{


return "";


}


else


{


return string.Format("{0}-{1}-{2}", year, month, day);


}


}


public bool IsNull


{


get


{


// Put your code here


return m_Null;


}


}


public static JalaliDate Null


{


get


{


JalaliDate h = new JalaliDate();


h.m_Null = true;


return h;


}


}


public static JalaliDate Parse(SqlString s)


{


if (string.IsNullOrEmpty(s.Value))


return JalaliDate.Null;


JalaliDate u = new JalaliDate();


string[] values = s.Value.Split(new char[] { '-' });


u.year = int.Parse(values[0]);


u.month = int.Parse(values[1]);


u.day = int.Parse(values[2]);


// Put your code here


return u;


}


public DateTime GregorianValue


{


get


{


PersianCalendar pc = new PersianCalendar();


DateTime dt = new DateTime(year, month, day, pc);


return dt;


}


}


public static JalaliDate JalaliValue(DateTime gregorianValue)


{


PersianCalendar pc = new PersianCalendar();


int y, m, d;


y = pc.GetYear(gregorianValue);


m = pc.GetMonth(gregorianValue);


d = pc.GetDayOfMonth(gregorianValue);


JalaliDate ans = new JalaliDate();


ans.year = y;


ans.month = m;


ans.day = d;


return ans;


}


public JalaliDate AddDays(int days)


{


return JalaliValue(GregorianValue.AddDays(day));


}


private int year;


private int month;


private int day;


// Private member


private bool m_Null;


}


 






امیدوارم به دردتون بخوره
برای Deploy کردن این برنامه اول یه Sql server project البته به زبان C sharpاز تو Virtual studio

New کنید بعد روی پروژه کلیک راست کنید Add,بعد User Defiend Type رو انتخاب کنید

بعد کدها رو پاک کنید و این کدها رو اونجا Copy کنید بعد F5 بزنید تا برنامه روی Data base مورد نظر که انتخاب کردید Deploy بشه ّبعد می تونید تو جدول ها از jalaliDate بجای DateTimeاستفاده کنید امیدوارم به درد بخوره    036 
پست شماره 13765
تبلیغات
ارسال شده در تاریخ پنج شنبه 11 مرداد 1386 - 4:52 بعدازظهر
تازه اول راهه

تازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راههتازه اول راهه

گروه: کاربران
آخرین بازدید: سه شنبه 16 مرداد 1386 - 2:24 بعدازظهر
پست ها: 1, بازدید ها: 1
ولی این که error میده !
پست شماره 93764
« تاپیک قبلی | تاپیک بعدی »


خواندن این تاپیک باز / بسته
کاربر فعال: 1 (1 مهمان, 0 کاربر, 0 کاربر ناشناس)
در حال حاضر هیچ کاربری در حال مشاهده این تاپیک نیست.
مدیران انجمن: فرشاد, Shahrad, Xiphi, علیرضا, ace4cia

دسترسی ها باز / بسته

اختلاف زمانی GMT +3:30, ساعت 7:17 صبح



   Sponsored By
EUKHOST - InstantASP - MTN Irancell
Execution: 0.047. 11 queries. Compression Disabled
Powered By InstantForum.NET v4.1.4 © 2008
Contact Us .:. Advertising .:. Professional Web Hosting
PF News .:. Dolphins .:. PF Girls .:. PF Boys .:. PFN MVP .:. Persian Pics
2004-2008 Persian Forum Network. All Rights Reserved.