PDA

View Full Version : گفتگو: ذخیره تاریخ در بانک



daffy_duck376
یک شنبه 27 بهمن 1387, 16:26 عصر
سلام دوستان من در حال نوشتم یه برنامه هستم که توش وجود تاریخ شمسی و مقایسه آن خیلی مهمه : من برای اینکه هیچ اشتباهی تو گزارشاتم نداشته باشم از کدوم روش استفاده کنم ؟
1- تاریخ رو یه فیلد 10 تایی بگیرم ؟ آیا تا حالا کسی با این روش به مشکل خورده ؟ مخصوصا برای گزارشات بر اساس تاریخ .
2- یه فیلد DATE TIME بگیرم موقع ذخیره با یه تابه تاریخ شمسی رو به میلادی تبدیل کنم تا بتونم از محاسن فیلد DATE TIME که دقیق بودنش هست استفاده کنم .
دوستانی که تجربه کافی دارن کمک کنن. کدوم روش بهتره . چون هیچ گزارشی نباید اشتباه باشه

accpascal
یک شنبه 27 بهمن 1387, 18:09 عصر
من در موارد مشابه نیاز فراوان به تاریخ شمسی از نوع nvarchar(10) استفاده کرده ام و تا حالا مشکلی نداشته ام ضمن اینکه توابع مربوط به تاریخ شمسی نیز خیلی مهم هستند که چگونه نوشته شده باشند

babak_delphi
یک شنبه 27 بهمن 1387, 21:51 عصر
من این روش رو استفاده میکنم و خوب بوده :

فیلد رو از نوع LongInteger در نظر میگیرم

در زمان ذخیره در جدول : با یک تابع ممیز ها رو حذف میکنم.در اون صورت تاریخ بشکل زیر در میاد :


14/05/1387 => 13870514 ، 30/12/1499 => 14991230


در زمان خواندن از دیتابیس با یک تابع ممیز رو به محل مورد نزر اضافه میکنم
در زمان مقایسه هم 2 تا عدد رو مقایسه میکنیم که سرعت کار بیشتره
برای کارهای ویژهء تاریخ هم اگه کاری هست که با مقایسه جواب نمیده میتونید تابع بنویسید

omid1240
دوشنبه 28 بهمن 1387, 00:10 صبح
ده کاراکتری هیچ مشکلی نداره فقط باید اعداد زیر 10 یک صفر قبلشون گذاشته بشه .

Modernidea
دوشنبه 28 بهمن 1387, 01:38 صبح
ده كاركتري عاليه. البته همونطور كه گفته شد بايد اعداد كمتر از ده يك صفر بهشون اظافه بشه.

saeed_d
دوشنبه 28 بهمن 1387, 14:07 عصر
من هم تا حالا همیشه از 10 کاراکتری استفاده کرده ام و هیچ مشکلی نداشتم. فقط موضوعی که جناب chatbaz گفتند مهم است.