ورود

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



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

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

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

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

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


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


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

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

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

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