PDA

View Full Version : مبتدی: مرتب سازی تاریخ در دیتابیس



imankho
شنبه 18 اردیبهشت 1389, 09:32 صبح
سلام به همه دوستان

نمی دنم که این سوال در این قسمت به جاست یا نه ؟

من در مای اسکیو ال دو تا جدول دارم که در اون ها تواریخ زیادی رو ثبت کردم حالا می خوام که این داده ها رو بر اساس روز مرتب کنم. البته الان من مرتب سازی رو با کوری زیر انجام می دم و بر اساس سال برای من مرتب میشه.


SELECT * FROM calendar order by `date` desc LIMIT $limitvalue, $limitاما

من می خوام این مرتب سازی بر اساس روز و یا ماه باشه باید چه کار کنم
من باید از کد php استفاده کنم یا SQL میتونه به من کمک کنه.
لطفا راهنمایی کنید.

Reza1607
شنبه 18 اردیبهشت 1389, 11:00 صبح
نوع داده تاریخ شما توی جدولتون چی هست به هر حال من پیشنهاد می کنم که برای تاریخ از نوع varchar استفاده کنید دردسرش کمتره راحتره و می تونید با کوری خودتون هم نتیجه رو مرتب کنید

imankho
شنبه 18 اردیبهشت 1389, 13:45 عصر
نوع داده یکی از جداول از نوع date هست و نوع داده جدول اصلی از نوع varchar (20) هستش.

اما میشه بیشتر توضیح بدید این که نوع داده رشته ای باشه چه مزیتی داره؟
به نظر من نوع داد تاریخ استاندارد تر هست و مسلما باید راهی ساده تر و اصولی تر در مورد این مرتب سازی هست.

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

imankho
یک شنبه 19 اردیبهشت 1389, 10:27 صبح
دوستان یه کمکی بکنید کارم خیلی گیره

trade_mark
یک شنبه 19 اردیبهشت 1389, 12:40 عصر
این پست شاید بتونه کمکت کنه
http://barnamenevis.org/forum/showthread.php?t=218602

imankho
یک شنبه 19 اردیبهشت 1389, 16:38 عصر
سلام
ممنون از کمک در مورد استفاده از کوری زیر :

select *, cast(replace(filed name,'/','')as unsigned)as t from test order by t desc اما من با کوری که خودم دارم به همین صورت خورجی مرتبی می گیرم و خورجی کوری شما با خورجی خودم یکی هست.

من می خوام تاریخ های موجود توی دیتا بیسم به ترتیب روز مرتب بشه مثل زیر:
داده های فعلی
2007-1-18
2007-1-04
2006-5-28
2006-2-20
2001-6-29
داده های مرتب شده بر اساس روز
2001-6-29
2006-5-28
2006-2-20
2007-1-18
2007-1-04

من اینطور مرتب سازی رو می خوام.

الان که کوری شما رو دیدم یه ایده به ذهنم خورد که نمی شه از SUBSTR بجای REPLACE استفاده کرد . اگه این کار شدنیه میشه بگید سینتکس درست استفاده از SUBSTR در SQL چیه چون اون جوری که به ذهنم اومد پیغام خطا میده.

درکل اگه راه دیگه ای هم هست کمک کنید

trade_mark
یک شنبه 19 اردیبهشت 1389, 22:00 عصر
عزیز ، اینم چند تا مثال از substr امیدوارم به دردت بخوره:قلب:


mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
-> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
-> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
-> 'ki'

imankho
دوشنبه 20 اردیبهشت 1389, 10:47 صبح
کارم درست شد .
هم می تنم بر اساس روز مرتب کنم و هم بر اساس ماه
دستتون درد نکنه