PDA

View Full Version : سوال: بهترین روش ذخیره تاریخ در دیتابیس چیست؟



majesticsoft
چهارشنبه 19 تیر 1392, 12:28 عصر
سلام
می خواستم بدونم بهترین روش ذخیره تاریخ در دیتابیس چیست؟
بعضی ها تاریخ رو میلادی ذخیره می کنن و بعد از خوندن از دیتابیس به شمسی تبدیل می کنن.
بعضی ها مستقیما شمسی ذخیره می کنن
بعضی ها هم روز و ماه و سال رو تو سه تا ستون مختلف ذخیره می کنن
مزایا و معایب هر کدوم چی هستن؟

babak2000
چهارشنبه 19 تیر 1392, 12:47 عصر
بعضی ها تاریخ را بصورت عددی ذخیره میکنند مثل خود ما
چند سالی درگیر تاریخ بودیم و بهترین راه هم همین بوده (حداقل برای ما)

روی دیتای سنگین و همچنین گزارش گیری ها خوب بوده

dbdbdb
چهارشنبه 19 تیر 1392, 12:52 عصر
من هم همون میلادی ذخیره میکنم همیشه
چون تاریخ شمسی فقط جنبه نمایشی داره و لازم نیست تو منطق برنامه دخیل بشه
و برای سایر کارهای از همون تاریخ میلادی Query و گزارش میگیریم
همیشه هم جوابگوی همه کارام بوده

mohammad kafiyan
چهارشنبه 19 تیر 1392, 17:44 عصر
اگر در برنامه یا پروژه نیاز داری که با تاریخ کار کنی و نیاز به محاسبات داری مثلا کم کردن دو تاریخ جهت بدست آوردن اختلاف روز ها و نمونه هایی مثل این که بهتر است از نوع میلادی ذخیره کنی تا بتونی محاسبات مورد نظر انجام بدی و نخواهی مدام convert کنی و بعد از انجام محاسبات یک convert نهایی برای تبدیل میلادی به شمسی جهت نمایش نیاز داری بهتر به اینصورت که گفتم عمل کنی
ولی اگر در برنامه یا پروژه جنبه ی نمایشی است بهتر بهصورت char(10)بگیری و از نوع شمسی ذخیره کنی

mohsen22
چهارشنبه 19 تیر 1392, 18:40 عصر
اگر ترکیب تاریخ و ساعت رو نیاز داشتیم بهتره به چه فرمتی ذخیره کنیم؟

جدا گانه یا با هم ؟

mohammad kafiyan
چهارشنبه 19 تیر 1392, 21:57 عصر
جداگانه ذخیره کن به همان ترتیبی که برای تاریخ گفتم از همان charاستفاده کن
اگر جدا نگیری باید در کدنویسی با دستورات مثل substring و غیره کاربا رشته ها است دست و پنجه نرم کنی

mahan.2002
پنج شنبه 20 تیر 1392, 07:41 صبح
یه سوال برا من پیش میاد .. اگر کوئری تبدیل که بصورت ( دیفالت آماده = خومون نمینویسیم ) هست و آماده استفاده میکنیم .. در بعضی از موارد به اشتباه تاریخ تبدیل کنه!
اینجا باید چیکار کرد ... به طبع در نمایش هم بصورت اشتباه نمایش داده میشه؟؟
خورمو هم چون کوئری تبدیل ننوشتیم حال باید با هزار دنگ فنک که اگر و اگر و اگر بتونیم مشکل حل کنیم !!
بنظر بهتر نیست از همون تاریخ شمسی یا عدد( که اوونم مشکله خودشوداره ) استفاده بشه!!؟

as13851365
پنج شنبه 20 تیر 1392, 09:49 صبح
من برای هر جدول سه تا فیلد در نظر میگیرم یکی برای unix time stamp یکی برای سال یکی هم برای ماه

اگه نیاز به گروه بندی باشه مثلا محاسبه سود و زیاد ماهانه یا کشیدن نمودار ماهانه برای هر سال از دو فیلد مزبور که سال و ماه رو ذخیره می کنن استفاده می کنم

و اگه نیاز به زمان دقیق (سال و ماه و روز و روز از هفته و ساعت و دقیقه و ثانیه و ...) داشته باشم از unix time stamp استفاده میکنم

fakhravari
پنج شنبه 20 تیر 1392, 14:07 عصر
nchar
ديتتايم يه چيز كلي كه ميتوني همه مشخصات از روش در بياري اما هر گونه نوع ديگه كمي اطلاعات از دست ميدي.
باز بستگي به كارت داره.

Progman.ir
پنج شنبه 20 تیر 1392, 23:22 عصر
nchar
ديتتايم يه چيز كلي كه ميتوني همه مشخصات از روش در بياري اما هر گونه نوع ديگه كمي اطلاعات از دست ميدي.
باز بستگي به كارت داره.
دقیقا.منم همین نظر رو دارم

amirsajjadi
پنج شنبه 17 مرداد 1392, 00:13 صبح
سلام.
اگه هدف از درج تاریخ فقط نمایش اون تاریخ در سایت باشه که بهتره از نوع رشته باشه ولی اگه هدف غیر از نمایش تاریخ، انجام یکسری محاسبات و فیلترینگ ها روی اون تاریخ باشه بهتره از نوع تاریخ ذخیره بشه و هنگام نمایش تبدیل به شمسی بشه.

نکته : باید دقت کنید که بعضی محاسبات روی تاریخ های میلادی با تاریخ های شمسی جور در نمیاد مثلا اگر تاریخی که در جدول ذخیره شده 2012/8/8 (معادل 17/5/1392) باشه انتظار ما اینه که همین تاریخ میلادی ذخیره شده در جدول رو اگر دو ماه اضافه کنیم باید 17 مهر 1392 رو نشون بده ولی 16 مهر 1392 رو نشون میده. ولی این مشکلات با توابع کلاس Globalization.PersianCalendar قابل حله.

mbasirati
پنج شنبه 17 مرداد 1392, 11:32 صبح
جداگانه ذخیره کن به همان ترتیبی که برای تاریخ گفتم از همان charاستفاده کن
اگر جدا نگیری باید در کدنویسی با دستورات مثل substring و غیره کاربا رشته ها است دست و پنجه نرم کنی

وقتی نوع datetime باشه به راحتی با توابعی که وجود داره میشه ساعت و تاریخ رو جدا کرد. چه نیازی به کار با توابع رشته هاس؟! (استفهام انکاری) :لبخندساده: