PDA

View Full Version : تبدیل مثلا 13900211 به 1390/02/11



nader.golab
چهارشنبه 25 خرداد 1390, 03:16 صبح
سلام به دوستان عزیز.
من یه فیلد دارم از نوع NVarchar که توش تاریخ بدون علامت ذخیره می شه(13900211)
حالا می خوام دستوری بنویسم که تبدیلش کنه به 1390/02/11

ممنون از دوستان

محمد سلیم آبادی
چهارشنبه 25 خرداد 1390, 03:30 صبح
نمی دونم چرا تاریخ رو از نوع NVarchar گرفتین. دیگه N واقعا غیر ضروری بود برای این منظور. چرا که اصلا نمیتونید مقادیری که در جدول درج یا بروز رسانی میشن را مدیریت و کنترل کنید. اگه من عدد 99999999 یا 00000000 را به عنوان تاریخ وارد کنم با توجه به اینکه هیچ قیدی بطور پیشفرض در نظر گرفته نشده باشه این مقدار درج میشه.
از طرفی برای بدست آوردن اختلاف های زمانی یا اضافه کردن مقداری به این تاریخ و دیگر اعمال دچار مشکل هستید.

اینها یک طرف داستان بودن و طرف دیگه اینه که شما نمی تونید توسط نرم افزار نهایی کاری کنید که موقع نمایش داده ها به شکل مورد نظر در بیان (مثل Mask ای که در Access وجود داره)؟ چرا که ایده ی Format کردن داده ها در RDBMS کار جالبی نیست.

از همه ی اینها که بگذریم. شما میتونید دستور Update زیر را برای این منظور بکارگیری کنید:

UPDATE TableName SET your_column = SUBSTRING(your_field, 1, 4) + '/' + SUBSTRING(your_field, 5, 2) + '/' + SUBSTRING(your_field, 7, 2);

پر واضحه که میتونید برای تابع رشته ای سمت چپ از LEFT و از RIGHT برای راستی استفاده کنید.

nader.golab
شنبه 28 خرداد 1390, 17:01 عصر
با سلام.
ممنون از دوست عزیزم بابت راهنمایی کردنشون اما ...

حالا اگر بر عکس این قضیه بود مثلا:1390/02/11 باشه بخوایم به 13900211 تبدیل کنیم چی کار کنیم.

behrouzlo
یک شنبه 12 تیر 1390, 22:25 عصر
براحتی می توانید با همین تابع SUBSTRING اینکار را انجام دهید

SUBSTRING(your_field, 1, 4) + SUBSTRING(your_field, 6, 2) + SUBSTRING(your_field, 9, 2);

mehdi.mousavi
یک شنبه 12 تیر 1390, 22:32 عصر
با سلام. ممنون از دوست عزیزم بابت راهنمایی کردنشون اما ... حالا اگر بر عکس این قضیه بود مثلا:1390/02/11 باشه بخوایم به 13900211 تبدیل کنیم چی کار کنیم.

سلام.
کافیه تا / ها رو حذف کنید:

SELECT REPLACE('1390/02/11', '/', '')

موفق باشید.

mohsenm66
یک شنبه 04 دی 1390, 18:20 عصر
حالا به نظر شما بهترین نوع برای ذخیره تقویم فارسی چه فیلدی است

tiphooo
چهارشنبه 28 دی 1390, 15:48 عصر
استفاده از تاریخ میلادی در دیتابیس و تبدیل آن به شمسی در هنگام نمایش در برنامه