mri_6889
سه شنبه 16 مهر 1392, 18:37 عصر
سلام دوستان. همانطور که میدانید، در دیتابیسها از تاریخ هجری شمسی پشتیبانی نمیشود. این در حالی است که در همه نرمافزارهای ایرانی با این نوع تاریخ سروکار داریم.
1- در انواع تکنولوژیهای بانک اطّلاعاتی دات نت مانند مانند SQL Query و Linq چگونه میتوان این تاریخها را ذخیره و بازیابی نمود.
2- در برنامههای تجاری مانند حسابداری و... یکی از بیشترین نوع جستجوها بین دو تاریخ است. چگونه به سریعترین و با بهترین بازدهی میتوان جستجوی بین دو تاریخ را انجام داد؟ با توجّه به اینکه اگر نوع فیلد تاریخ باشد، جستجوی بین آنها با دستور between در SQL انجام میشود. روش دیگر این است که تاریخ شمسی را در قالب عدد بدون قالب تاریخ مثلا بجای 1392/10/16 بصورت 13921016 ذخیره شده و جستجو بین اعداد با همان دستور between انجام شود. امّا این روش هم همیشه در جستجوی بین دو تاریخ جواب درست را نمیدهد.
3-روش دیگر این است که تاریخ را به میلادی ذخیره کتی. سپس هنگامی که کاربر دو تاریخ را برای جستجوی موارد بین دو تاریخ میدهد، این دو تاریخ را به معادل میلادی تبدیل کنیم و سپس بین تاریخهای میلادی جستجو کنیم. امّا در این روش باید یک فیلد اضافی هم برای تاریخ شمسی مثلا در قالب متنی یا nvarchar داشته باشیم، تا اینکه زمانی که جستجو انجام میشود، در نتایج جستجو این فیلد نمایش داده شود. امّا در پشت صحنه جستجو برا اساس فیلد تاریخ میلادی انجام شود. امّا بدی این موضوع هم ایجاد یک فیلد اضافی در بانک اطّلاعاتی است. ضمن آنکه مساله تبدیل تاریخ هم خود معضلی است.
4-روش دیگر این است که ذخیره فیلدها بر اساس تاریخ شمسی و بصورت متن باشد و در هنگام جستجو، تک تک فیلدها به میلادی تبدیل شده و در یک جدول موقّت به منظور انجام جستجو ذخیره شود
شما جه روشهایی را میشناسید؟ لطفا در این باره هرگونه مطلبی بلدید، بنویسید:متفکر:
1- در انواع تکنولوژیهای بانک اطّلاعاتی دات نت مانند مانند SQL Query و Linq چگونه میتوان این تاریخها را ذخیره و بازیابی نمود.
2- در برنامههای تجاری مانند حسابداری و... یکی از بیشترین نوع جستجوها بین دو تاریخ است. چگونه به سریعترین و با بهترین بازدهی میتوان جستجوی بین دو تاریخ را انجام داد؟ با توجّه به اینکه اگر نوع فیلد تاریخ باشد، جستجوی بین آنها با دستور between در SQL انجام میشود. روش دیگر این است که تاریخ شمسی را در قالب عدد بدون قالب تاریخ مثلا بجای 1392/10/16 بصورت 13921016 ذخیره شده و جستجو بین اعداد با همان دستور between انجام شود. امّا این روش هم همیشه در جستجوی بین دو تاریخ جواب درست را نمیدهد.
3-روش دیگر این است که تاریخ را به میلادی ذخیره کتی. سپس هنگامی که کاربر دو تاریخ را برای جستجوی موارد بین دو تاریخ میدهد، این دو تاریخ را به معادل میلادی تبدیل کنیم و سپس بین تاریخهای میلادی جستجو کنیم. امّا در این روش باید یک فیلد اضافی هم برای تاریخ شمسی مثلا در قالب متنی یا nvarchar داشته باشیم، تا اینکه زمانی که جستجو انجام میشود، در نتایج جستجو این فیلد نمایش داده شود. امّا در پشت صحنه جستجو برا اساس فیلد تاریخ میلادی انجام شود. امّا بدی این موضوع هم ایجاد یک فیلد اضافی در بانک اطّلاعاتی است. ضمن آنکه مساله تبدیل تاریخ هم خود معضلی است.
4-روش دیگر این است که ذخیره فیلدها بر اساس تاریخ شمسی و بصورت متن باشد و در هنگام جستجو، تک تک فیلدها به میلادی تبدیل شده و در یک جدول موقّت به منظور انجام جستجو ذخیره شود
شما جه روشهایی را میشناسید؟ لطفا در این باره هرگونه مطلبی بلدید، بنویسید:متفکر: