ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: marauder ที่ 07 ตุลาคม 2013, 11:25:24



หัวข้อ: สอบถามเรื่อง SQL ครับ
เริ่มหัวข้อโดย: marauder ที่ 07 ตุลาคม 2013, 11:25:24
 :wanwan017:  คือผมเขียน php ให้แสดงวันเวลาในช่องระหว่าง เช่น
   แสดงข้อมูลหว่างวันที่ 24-10-2013 เวลา 04:00.00 ถึง วันที่ 25-10-2013 เวลา 03:59.00 ครับ
โดยฐานข้อมูลของผม ดันนี้น่ะครับ

Date -> เก็บวันที่ เริ่มใช้
ETA -> เก็บเวลาที่จะเข้า
ETD -> เก็บเวลาที่จะออก

โดยในช่วงเวลาที่มีปัญหาจะเป็นช่วง 00:00.00 ถึง 03:58.00 ครับที่ข้อมูลจะไม่แสดง  มีวิธีแก้ยังไงได้บ้างครับ

โค๊ด:
SELECT * FROM  `flight` 
WHERE (
f_date
BETWEEN  '2013-09-24'
AND  '2013-09-25'
)AND (
f_edt >  '03:59:00'
)
ORDER BY  `flight`.`f_date` ,  `flight`.`f_eta` ,  `flight`.`f_flt`


หัวข้อ: Re: สอบถามเรื่อง SQL ครับ
เริ่มหัวข้อโดย: gubaaball ที่ 07 ตุลาคม 2013, 11:45:38
:wanwan017:  คือผมเขียน php ให้แสดงวันเวลาในช่องระหว่าง เช่น
   แสดงข้อมูลหว่างวันที่ 24-10-2013 เวลา 04:00.00 ถึง วันที่ 25-10-2013 เวลา 03:59.00 ครับ
โดยฐานข้อมูลของผม ดันนี้น่ะครับ

Date -> เก็บวันที่ เริ่มใช้
ETA -> เก็บเวลาที่จะเข้า
ETD -> เก็บเวลาที่จะออก

โดยในช่วงเวลาที่มีปัญหาจะเป็นช่วง 00:00.00 ถึง 03:58.00 ครับที่ข้อมูลจะไม่แสดง  มีวิธีแก้ยังไงได้บ้างครับ

โค๊ด:
SELECT * FROM  `flight` 
WHERE (
f_date
BETWEEN  '2013-09-24'
AND  '2013-09-25'
)AND (
f_edt >  '03:59:00'
)
ORDER BY  `flight`.`f_date` ,  `flight`.`f_eta` ,  `flight`.`f_flt`

โค๊ด:
where( f_date = '2013-09-24' AND  f_edt >=  '04:00:00') OR (f_date = '2013-09-25' AND  f_edt <=  '03:59:00')

ลองดูน่ะครับ ผมเดาๆมาเหมือนกันไม่ได้ลอง 555+  :wanwan003:


หัวข้อ: Re: สอบถามเรื่อง SQL ครับ
เริ่มหัวข้อโดย: marauder ที่ 07 ตุลาคม 2013, 15:46:41
:wanwan017:  คือผมเขียน php ให้แสดงวันเวลาในช่องระหว่าง เช่น
   แสดงข้อมูลหว่างวันที่ 24-10-2013 เวลา 04:00.00 ถึง วันที่ 25-10-2013 เวลา 03:59.00 ครับ
โดยฐานข้อมูลของผม ดันนี้น่ะครับ

Date -> เก็บวันที่ เริ่มใช้
ETA -> เก็บเวลาที่จะเข้า
ETD -> เก็บเวลาที่จะออก

โดยในช่วงเวลาที่มีปัญหาจะเป็นช่วง 00:00.00 ถึง 03:58.00 ครับที่ข้อมูลจะไม่แสดง  มีวิธีแก้ยังไงได้บ้างครับ

โค๊ด:
SELECT * FROM  `flight` 
WHERE (
f_date
BETWEEN  '2013-09-24'
AND  '2013-09-25'
)AND (
f_edt >  '03:59:00'
)
ORDER BY  `flight`.`f_date` ,  `flight`.`f_eta` ,  `flight`.`f_flt`

โค๊ด:
where( f_date = '2013-09-24' AND  f_edt >=  '04:00:00') OR (f_date = '2013-09-25' AND  f_edt <=  '03:59:00')

ลองดูน่ะครับ ผมเดาๆมาเหมือนกันไม่ได้ลอง 555+  :wanwan003:
ขอบคุณครับลองแก้จากที่พี่ให้มา ได้แล้วครับ
โค๊ด:
SELECT * 
FROM  `flight`
WHERE (
(
`f_date` =  '2013-09-24'
)
AND (
`f_etd`
BETWEEN  '00:00:00'
AND  '23:59:00'
)
)
OR (
(
`f_date` =  '2013-09-25'
)
AND (
`f_etd`
BETWEEN  '00:00:00'
AND  '03:59:00'
)
)