PDA

View Full Version : سوال: نمایش اعداد بین 24 تا 6



mjt10063
یک شنبه 14 اردیبهشت 1393, 13:17 عصر
سلام دوستان
من توی برنامم میخوام از شیفت کاری استفاده کنم
توی دیتابیسم اعداد 1 تا 24 رو وارد کردم
برای نمایش شیفت صبح و عصر مشکلی نیست و میشه از کد زیر استفاده کرد
کد شیفت عصر
select * from shift_s WHERE saat_sh BETWEEN '15' AND '22';

اما مشکل اینجاست که شیفت شب از ساعت 22 الی 6 صبح و نمیدونم چطور و با چه کدی این اعداد رو نمایش بدم
یعنی در DDL به این صورت نمایش داده بشه

22
23
24
1
2
3
4
5
6
ممنون میشم کمکم کنید
با تشکر فراوان

majidnazari65
یک شنبه 14 اردیبهشت 1393, 13:35 عصر
یا شرط رو دو قسمت کن:
select * from shift_s WHERE (saat_sh BETWEEN '22' AND '24') OR (saat_sh BETWEEN '0' AND '6');


یا saat_sh رو سه ساعت شیفت بده به جلو و بعد بررسی کن که بین 1 تا 9 هست یا خیر:

select * from shift_s WHERE ((saat_sh+3)%24 BETWEEN '1' AND '9');

majidnazari65
یک شنبه 14 اردیبهشت 1393, 13:43 عصر
اگه درست متوجه شه باشم شما میخوای که ترتیب اعداد دقیقا چیزی باشه که نوشتی؟
در این صورت باید اینطوری نوشته بشه:

SELECT saat_sh
FROM (SELECT *,(saat_sh+3)%24 AS saat_temp FROM shift_s WHERE ((saat_sh+3)%24 BETWEEN '1' AND '9')) AS table_1
ORDER BY saat_temp ASC