PDA

View Full Version : ذخیره تاریخ به صورت عددی و استفاده از آن به صورت تاریخ



Yanehsar
یک شنبه 14 اسفند 1390, 00:44 صبح
سلام دوستان
من با استفاده از ماکس تکس باکس از نوع تاریخ، تاریخ مورد نظر خودم را به بانک میفرستم البته با استفاده از خصوصیت TextmaskFormat که اون برروی IncludePrompt تنظیم کردم و تاریخ رو به صورت عدد در بانکم ذخیره می کنم(13901214) حالا میخوام وقتی کاربرم تاریخ رو می بینه به صورت تاریخ باشه(1390/12/14) چیکار باید بکنم؟منظور من در دیتا گرید ویو هستش و کریستال ریپورت

vahdani_d
یک شنبه 14 اسفند 1390, 00:50 صبح
http://barnamenevis.org/showthread.php?293495-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%84%DB%8C%D8%B3%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B1-%DB%8C%DA%A9-%D8%A8%D8%A7%D8%B2%D9%87-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%AE%D8%A7%D8%B5&highlight=%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA+%D8 %A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA+%D8%A7%D8% B2+%D8%AF%D9%88+%D8%AC%D8%AF%D9%88%D9%84
تو این لینک جواب سوالتو پیدا میکنی
اما بهتره که تاریخ رو تبدیل کنی به میلادی و در دیتابیس ذخیره کنی و بعد هم برای نمایش تبدیل به شمسی کنی و نمایش بدی

ghasemweb
یک شنبه 14 اسفند 1390, 02:22 صبح
راه حلهای متنوعی وجود داره یکیش همین راه حلیه که دوستمون تو پست قبلی گفتن تبدیل تاریخ.یکی هم اینکه شما دوتا فیلد بذاری تو جدول یکی به صورت عددی مثل 13901212 که واسه مقایسه کاربرد داره و یکی هم رشته ای واسه نمایش تو دیتاگرید و امثالهم مثل 1390/12/12 این کار بدیش اینه که یه فیلد اضافی داری تو دیتابیس.

mze666
یک شنبه 19 شهریور 1391, 14:27 عصر
سلام - من یه دیتابیس دارم که تاریخ توی اون به صورت رشته ای زده شده به فرمت (1384/10/29). حالا میخوام تمام این تاریخ ها رو به Datetime تبدیل کنم - توی SQL چکار باید بکنم؟
منظورم برای نشان دادن به کاربر نیست! بلکه میخوام کلاً این تاریخ ذخیره شده به صورت string به Datetime تبدیل بشه توی دیتابیس.

خواهش میکنم کمکم کنید.

kkkaka
یک شنبه 19 شهریور 1391, 14:56 عصر
mze666 (http://barnamenevis.org/member.php?134519-mze666) جان شما بری تو قسمت دیزاین جدولت و مقدار رو به Date تغییر بدی دیگه باقیش حله خود SQL برات تبدیلش میکنه.

mze666
یک شنبه 19 شهریور 1391, 16:18 عصر
ممنون از پاسختون ولی مثل اینکه توجه نکردی من تو دیتابیسم کلی دیتا دارم چجوری خود SQL تاریخی که به صورت رشته ای زده شده رو به Datetime تبدیل کنه؟!

nilmil_nil
یک شنبه 19 شهریور 1391, 16:23 عصر
اگه تاریخ به صورت عدید ذخیره میکنید و میخواید به صورت تاریخ واقعی نشون بدید
یه تابع بنویسید که 4 رقم اول و 2 رقم بعد و همینطور 2 رقم بعد رو جدا کنید و حالا اونا رو با / باهم مرج کنید

mze666
یک شنبه 19 شهریور 1391, 18:24 عصر
دوست عزیز من اصلاً به نحوه نشون دادن کاری ندارم. یه ستون توی دیتابیسم به اسم PaymentDate هستش، توی اون برای تاریخ از رشته استفاده شده من میخوام همه اون اطلاعات رو به نوع Datetime تبدیل کنم توی SQL.

mohammad bayervand
چهارشنبه 22 شهریور 1391, 04:31 صبح
شما باید از روش جدول موقت استفاده کنی
یعنی

1. یک جدول بسازی مشابه جدول مورد نظر

2.فقط ستون تاریخ را به فرمت تاریخ که مد نظر است ایجاد بکن



2.اطلاعات را از جدول اول به جدول دوم در حالی منتقل بکن که اطلاعات ستون تاریخ را در حین انتقال تغییر بدهی تا برای کپی شدن در فرمت تاریخ مشکل نداشته باشد

3.بعد از پایان کپی جدول اول را پاک کن

4.و نام جدول دوم را به نام جدول اول تغییر بده.

ali_habibi1384
چهارشنبه 22 شهریور 1391, 08:22 صبح
دوست عزیز من اصلاً به نحوه نشون دادن کاری ندارم. یه ستون توی دیتابیسم به اسم PaymentDate هستش، توی اون برای تاریخ از رشته استفاده شده من میخوام همه اون اطلاعات رو به نوع Datetime تبدیل کنم توی SQL.
1- چنين كاري شدني نيست چون DateTime براي فارسي تعريف نشده مثلا برج 2 براي ميلادي 28 روز و براي ما 31 روز برخي برجهاي ديگه هم چنين اونوقت اس كيو ال ازت ايراد ميگره و كلا نميشه ازش استفاده كني.
2- كافيه يه تابع براي تبديل يه رشته عددي توي اس كيو ال بنويسي و توي سلكتت ازش استفاده كني و نياز به درست كردن يه فيلد توي تيبلت نداري.اگز نتونستي بنويسي تابع رو بگو بنويسم